2013-02-06 2 views
0

자바 스크립트는 자바 스크립트가 처음인데, 사용자 정의 사전과 .get 메소드를 사용하여 중첩 된 데이터를 쉽게 생성 할 수 있습니다. 내가하려는 것은이 형식을 취하는 아티스트 데이터의 중첩 된 객체를 만듭니다 : artistDict[artist][albumName] = albumYear. 앨범 객체의 반복 가능을 반복하여이 객체를 즉석에서 생성해야합니다.자바 스크립트로 중첩 된 객체 생성하기

albumDict = {}; 
albums.forEach(function(item){ 
albumDict[item.artist][item.name] = item.year; 
}); 
document.write(albumDict); 

이 작동하지 않습니다,이 같은 중 하나를 파이썬에서 작동하지 않을 것입니다 때문에, 놀라운 일이 아니다 : 저는 여기에 현재 사용하고 코드입니다. 그러나 파이썬에서는 .get 메서드를 사용하여 사전에 항목이 있는지 확인하고 그렇지 않은 경우 만들 수 있습니다. 비슷한 점이 있습니까? JS에서 목표를 달성하는 데 사용할 수있는 다른 유틸리티가 있습니까?

+1

속성이 존재하는지 테스트해야하며 그렇지 않은 경우 초기화해야합니다. –

답변

2

이 시도 :

albums.forEach(function(item){ 
    albumDict[item.artist] = albumDict[item.artist] || {}; 
    albumDict[item.artist][item.name] = item.year; 
}); 

그 함수의 첫 번째 라인은에 albumDict[item.artist]을 설정 새로운 객체가 아직 존재하지 않는다면. 그렇지 않으면, 자체적으로 설정합니다.

그러면 dict 항목에 연도를 설정할 수 있습니다.

4

이 작업을해야합니다 : (재산 당신이 그것을 초기화 할 필요가없는 경우 ..)

albumDict = {}; 
albums.forEach(function(item){ 
    albumDict[item.artist] = albumDict[item.artist] || {}; 
    albumDict[item.artist][item.name] = item.year; 
});