我正在使用一个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索引,这是一个字符串。您需要访问索引1。在语法中还有额外的[ ]
。要访问2D数组,您可以编写如下代码array[1][0]
但是你得到的是array[[1][0]]
这是错的
更改语法以指向索引1并删除额外的大括号
list_elm[list_elm.length - 1][1] += 1;
var getNum = list_elm[list_elm.length - 1][1];
您必须实际从字符串中获取数字字符。在字符串上直接执行ParseInt会得到NAN,因为第一个字符不能转换为数字。
如果您的值为' 1occurs ',则可以避免第二步。在这种情况下,您可以直接将其解析为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);