2016-08-30 12 views
0

2D配列を使用して値の発生を追跡していますが、2次元値を操作する際に問題があります。私の構文は間違いなく、私は2Dに整数を格納していますが、操作可能な整数を戻すことはできません。2D配列のデータにアクセスする

var list_elm = [occur1, 0], [occur2, 0] ...; 
//stuff that checks for instances 
var getNum = list_elm[[list_elm.length - 1][0]]; //last array item's second part 
list_elm[[list_elm.length - 1][0]] += 1; //this version produces a string "01111..." 
list_elm[[list_elm.length - 1][0]] = getNum++; //this produces NaN 

私はインクリメントしようとしている:list_elm [...] [これ]を。

+0

実際の配列は何ですか?あなたが数字を持っているように行動するように聞こえるが、現実には文字列がある。 – epascarello

答えて

1

インデックスは文字列です。にアクセスするには、インデックス1が必要です。また、構文には[ ]があります。 2次元配列にアクセスするには、 array[1][0]ような何かを書くが、何を持っていることは、インデックス1とあなたが

list_elm[list_elm.length - 1][1] += 1;

var getNum = list_elm[list_elm.length - 1][1];

0

余分なブレースを取り除くを指すように変更構文

間違っている array[[1][0]]ですあなたの文字列から実際に数字の文字を取得する必要があります。最初の文字を数値に変換できないため、文字列に直接ParseIntを実行するとNANが返されます。

あなたの値が「1occur」である場合は、第2工程を避けることができます。この場合、直接intとして解析することができます。

var list_elm = [['occur1', 0], ['occur1', 0]]; 
 

 
var elm = list_elm[list_elm.length-1][0]; // get the string 'occur1' 
 
elm = parseInt(elm.substr(elm.length-1)); // get 1 from 'occur1' and covert it to integer. 
 
elm++; 
 
console.log(elm);