나는 2 차원 배열의 숫자의 인덱스를 찾기 위해 노력하고 있지만, 콘솔다차원 배열 같이 IndexOf하지 JS 작업
catch되지 않은 형식 오류 밖으로 제공합니다. 블록 [((A * 10) + C)] 같이 IndexOf를 함수가 아닙니다.
배열 요소에 액세스하는 방법과 관련이 있다고 생각하지만 문제를 찾을 수 없습니다.
다음은 코드입니다.
var block = [];
var temp;
var del;
for(var a = 0;a < 9;a++){
for(var b = 0;b < 9;b++){
temp = parseInt(prompt("enter element number " + b + " of row number " + a));
console.log(temp);
if(temp>0){
block[a*10+b] = temp;
}else{
block[a*10+b] = [1,2,3,4,5,6,7,8,9];
}
// console.log(block[a*10+b]);
}
}
for(var a = 0;a < 9;a++){
for(var b = 0;b < 9;b++){
if(typeof(block[a][b]) == "number"){
for(var c = 0;c < 9;c++){
if(c != b){
del = block[a*10+c].indexOf(b);
block[a*10+c].splice(del,1);
}
}
}
}
}
먼저 I 할 것이다 :'CONSOLE.LOG (블록 [((a * 10) + c)]) '이 무엇인지를 참조한다. 그러나 좀더 구체적으로 말하면, 값은 아마도 객체이고 객체는'indexOf' 메쏘드를 가지고 있지 않다는 것을 의미합니다 ... 문자열은 저장하지만 아마도 문자열을 저장하지 않았을 것입니다. 또한,'prompt'에서 반환 된 모든 데이터가 문자열로 반환된다는 것을 기억하십시오. 숫자가 입력 된 경우에도 –
숫자에는 indexOf() 메서드가 없음 – dandavis
다차원 배열을 만들지 않으므로 * 블록 *은 단순한 배열입니다. 첫 번째 루프는 0에서 99 사이의 인덱스에 0에서 99까지의 단일 루프에서 수행 할 수있는 방식으로 요소를 삽입합니다. * block * 요소가 음수 값을 입력 할 경우에만 'typeof block [a] [b]! = "number"'. 그런 다음 블록 [a * 10 + c]에 액세스합니다. – RobG