0

我是来自 Python 背景的 Javascript 新手,使用自定义字典和.get方法很容易创建嵌套数据。我想要做的是创建一个艺术家数据的嵌套对象,它采用这种形式:artistDict[artist][albumName] = albumYear. 我需要通过迭代专辑对象的可迭代来动态创建这个对象。这是我目前正在使用的代码:

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

这不起作用,这并不奇怪,因为这样的东西在 Python 中也不起作用。但是,在 Python 中,我可以使用一种.get方法来检查一个条目是否在字典中,如果没有则创建它——是否有类似的东西,或者我可以使用任何其他实用程序来实现我在 JS 中的目标?

4

2 回答 2

4

这应该有效:(如果该属性不存在,您应该初始化它..)

albumDict = {};
albums.forEach(function(item){
    albumDict[item.artist] = albumDict[item.artist] || {};
    albumDict[item.artist][item.name] = item.year;
});
于 2013-02-06T14:14:46.577 回答
3

试试这个:

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

albumDict[item.artist]如果新对象尚不存在,则该函数的第一行设置为新对象。否则,它将其设置为自身。

然后,您可以在 dict 条目上设置年份。

于 2013-02-06T14:15:41.080 回答