2016-08-30 3 views
0

2D 배열을 사용하여 값의 발생을 추적하고 있지만 두 번째 차원 값을 조작하는 데 문제가 있습니다. 내 구문은 확실히 꺼져 있습니다. 왜냐하면 저는 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]]입니다 실제로 문자열에서 숫자를 가져와야합니다. 첫 번째 char을 숫자로 변환 할 수 없으므로 문자열에 직접 ParseInt를 사용하면 NAN을 제공합니다.

값이 '1cur'인 경우 두 번째 단계를 피할 수 있습니다. 이 경우 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);