2016-09-15 4 views
0

간단한 구문 규칙이 없어서 나에게 지적 할 수 있습니다.자바 스크립트 색인 객체 내부의 배열

은 내가 개체에 어떤 작업을 할 다음과 같이 정의 객체 ...

var board = { 
    //this data structure was heavily discussed with Lydia Brothers. its current form is due to her help 
    state: { 
    flipped: true, 
    ballWasDroppedLastMove: false, 
    topPlace: 0, 
    bottomPlace: 0, 
    top: [[1,2,3,4,5,6],[7,8,9,10,11,99],[12,13,14,15,99,99],[16,17,18,99,99,99],[19,20,99,99,99,99],[21,99,99,99,99,99]], 
    bottom: [[0,0,0,0,0,0],[0,0,0,0,0,99], [0,0,0,0,99,99], [0,0,0,99,99,99], [0,0,99,99,99,99], [0,99,99,99,99,99]], 
    }, ... 

이 - 특히 내가 board.state.top에 관심이 있어요.

나는 아래 그림과 같은 것을 얻을 콘솔에 board.state.top를 인쇄

...

enter image description here

나는 값 12,11,0,0,99,99에 액세스하려면.

for (i=0; i<6; i++){ 
    console.log(pboard.state.top[i]) 
} 

다른 언어에서 나의 경험은 내가 이런 일을해야 하더군요

... ... 그리고 그게 내가 위의 이미지를 가지고 정확히 방법입니다. board.state.top[i][j] (추가 치수 추가)과 같은 것을 시도했지만 그 값을 인쇄합니다. 0,0,0,0,99,99

어떻게 이러한 요소에 액세스합니까?

으로 내가 사물을 단순화하기 위해 (어떤 범위에) 다음 ...

var i; 
var j; 
for (i=0; i<6; i++){ 
    row = pboard.state.top[i]; 
    row.forEach(element => {console.log(element);}); 
    // for (j=0; j<6; j++){ 
    // console.log(top[j]) 
    // } 
} 
+0

는 더 값'12,11,0,0이 없습니다 , 99,99' 배열에 우리에게 보여 줬어? – Bergi

+0

당신이 [너무] 일찍 개체를보고있어 [추천] (http://stackoverflow.com/q/4057440/1048572) 게시 한 스크린 샷 (http://stackoverflow.com/q/23392111/1048572) – Bergi

+0

'board.state.top [i] [j]'는 작동해야합니다 ... 아마 색인 주문을 혼동 했습니까? try'board.state.top [j] [i]' – david

답변

0

을 시도 체계적 위해 그것을 아래 제안했다.

먼저 array 속성을 board.state.top에서 검색하여 변수에 저장하십시오.

그런 다음 forEach API를 사용하여 요소를 반복합니다.

예 :

var board = { 
 
    //this data structure was heavily discussed with Lydia Brothers. its current form is due to her help 
 
    state: { 
 
    flipped: true, 
 
    ballWasDroppedLastMove: false, 
 
    topPlace: 0, 
 
    bottomPlace: 0, 
 
    top: [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 99], [12, 13, 14, 15, 99, 99], [16, 17, 18, 99, 99, 99], [19, 20, 99, 99, 99, 99], [21, 99, 99, 99, 99, 99]], 
 
    bottom: [[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 99], [0, 0, 0, 0, 99, 99], [0, 0, 0, 99, 99, 99], [0, 0, 99, 99, 99, 99], [0, 99, 99, 99, 99, 99]], 
 
    } 
 
} 
 

 
var that_row = board.state.top[2]; 
 
that_row.forEach(element => { console.log(element); });

+0

게시물을 수정했습니다. 나는 당신이 제안한 것을 시도했지만, 똑같은 일을했습니다. 0과 99를 프린트합니다. –

+0

@KendallWeihe 나는 당신의 업데이트 된 포스트를 확인했습니다. 그러면 예상 값은 어디에서'12,11,0,0,99,99'입니까? 귀하의 새로운 배열 값이 11 –

+0

게시물의 의견을 확인,이 해결되었습니다. 감사! –

0

이보십시오. 그것은 작동해야합니다. 가치에 도달하고 원하는 가치를 하나씩 가져와야합니다. 이 같은 것

state.top.forEach(function(innerItem){ 
    innerItem.forEach(function(item){ 
     console.info(item); 
    }) 
}) 

희망이 있습니다.

해피 학습 : 추시 조각은 POS 속성에 배열 각 값을 출력합니다

+0

WTH는'&& state.top.length && state.top.length> 0'이 좋습니다. – Bergi

+0

쉬운 소년! 너는 그것을 건너 뛸 수있다. 나는 바이올린에서 그렇게했는데, 만약 값이 존재하고 그것의 배열이면 그냥 체크했다. 당신이 해치지 않을 것입니다. – Vatsal

+0

예, 정말로 건너 뜁니다. 배열을 검사하려면'if (Array.isArray (state.top)) '만 사용하면됩니다. – Bergi

0

는 :

var board = { 
 
    //this data structure was heavily discussed with Lydia Brothers. its current form is due to her help 
 
    state: { 
 
    flipped: true, 
 
    ballWasDroppedLastMove: false, 
 
    topPlace: 0, 
 
    bottomPlace: 0, 
 
    top: [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 99], [12, 13, 14, 15, 99, 99], [16, 17, 18, 99, 99, 99], [19, 20, 99, 99, 99, 99], [21, 99, 99, 99, 99, 99]], 
 
    bottom: [[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 99], [0, 0, 0, 0, 99, 99], [0, 0, 0, 99, 99, 99], [0, 0, 99, 99, 99, 99], [0, 99, 99, 99, 99, 99]], 
 
    } 
 
} 
 

 
board.state.top.forEach(function(pos, topIndex) { 
 
    pos.forEach(function(v, i) { 
 
     console.log('From top index', topIndex, 'value in position', i, v); 
 
    }); 
 
});

+0

행운을 빌어, 프로그램에서 코드가 작동을 멈추고 있다고 생각합니다. 왜 콘솔에 다른 값을 출력합니까? http://codepen.io/garyyo/pen/mAdjVG?editors=1111 –

+0

코드가 아닌 ES6 코드 만 남겨두기로 결정했습니다. 아마도 ES6 코드가 지원되지 않는 환경에 있기 때문일 수 있습니다. 그러나 console.log는 현재 상황을 안내합니다. 모든 위치와 모든 위치 값을 인쇄하는 코드를 제공했습니다. 이제는 원하는대로 사용할 수 있습니다. –

관련 문제