2014-06-19 3 views
0

안녕하세요 저는 자바 스크립트에서 2 차원 배열을 만들고 있습니다. 객체는 다음과 같이 보입니다.자바 스크립트 객체에 컬렉션을 추가하는 방법

totalCells = [ 
    lineNumber = 0, 
    cells = [] 
]; 

이 배열에 어떻게 추가합니까?

나는

totalCells.push(1, ['a', 'b', 'c']);을 할 수 그러나 이것은 나에게 오류 발생 : cells is not defined

+1

당신은 혼란 배열과 개체 것 같습니다. JS에서는 배열에 번호가 지정된 요소가 있고 객체에는 명명 된 속성이 있습니다. – Barmar

+0

감사합니다. – Moiz

답변

3

당신은 당신이하려고하는 일을 할 수 있습니다. 배열의 키를 원한다면 객체를 사용하십시오. 그럼 당신은이 작업을 수행 할 수 있습니다하는 것입니다 귀하의 2 차원 배열을 모델링하기위한 간단한 방법을

var totalCells = []; 

// some logic... 

totalCells.push({ 
    lineNumber: 1, 
    cells: ['a', 'b', 'c'] 
}); 

totalCells.push({ 
    lineNumber: 2, 
    cells: ['x', 'y', 'z'] 
}); 
+2

'='는 객체 리터럴에서':'이어야합니다. – Barmar

+0

@Barmar 감사합니다. 복사 + 붙여 넣기는 항상 최선의 방법은 아닙니다 :) –

+0

예, Rory가 작동합니다. 감사합니다 – Moiz

0

:

var totalCells = { 
    lineNumber: 0, 
    cells: [] 
}; 

// some logic... 

totalCells.lineNumber = 1; 
totalCells.cells = ['a', 'b', 'c']; 

또는 여러 LINENUMBERS에 직접 cells을 묶어 객체의 배열을 가질 수있다 배열 배열을 사용하십시오. 예 :

totalCells = []; 

totalCells.push(['a','b','c']); 
totalCells.push(['d','e','f']); 

행 번호는이 경우에 totalCells [0] 로리 응답에 대한 대안으로서 제 1 선 등

0

는, 예를 들면, 암시한다. 그런 다음

var totalCells = {}

직접 키/속성을 추가 할 수있는 개체를 사용

totalCells[1] = ['a','b','c'] 
totalCells[2] = ['d','e','f'] 

이 가진 장점은지도로 개체를 사용할 수 있습니다 :

totalCells[1]['a','b','c']를 반환합니다

u nderscore.js (또는 lodash)을 사용하면 멋지게 할 수 있습니다. 추출 키 같은 ipulations ....

관련 문제