[英]JavaScript about .push()
我在网上找了很久。 但是没有用。 请帮助或尝试提供一些想法如何实现这一点。
var collection = { 1245: { artist: "Robert Palmer", tracks: [ ] }, 5439: { album: "ABBA Gold" } }; var collectionCopy = JSON.parse(JSON.stringify(collection)); function update(id, prop, value) { if (value !== '' && prop == 'tracks') { collectionCopy[id][prop].push(value); return collectionCopy; } update(1245, "tracks", "Addicted to Love");
它说 collectionCopy[id][prop].push(value) 不是一个函数,我不知道为什么,但 collectionCopy[id][prop] 实际上是一个数组。 感谢帮助!
您在 update() 的 if 语句中缺少 }。 下面的修复代码工作得很好:
var collection = {
1245: {
artist: "Robert Palmer",
tracks: [ ]
},
5439: {
album: "ABBA Gold"
}
};
var collectionCopy = JSON.parse(JSON.stringify(collection));
function update(id, prop, value) {
if (value !== '' && prop == 'tracks') {
collectionCopy[id][prop].push(value);
}
return collectionCopy;
}
update(1245, "tracks", "Addicted to Love");
输出:
{ 1245: { artist: 'Robert Palmer', tracks: [ 'Addicted to Love' ] },
5439: { album: 'ABBA Gold' } }
您的 if 语句未正确关闭。 尝试使用通常可以为您完成此操作的 IDE 更整洁地构建您的代码。 代码应如下所示:
var collection = { 1245: { artist: "Robert Palmer", tracks: [] }, 5439: { album: "ABBA Gold" } }; var collectionCopy = JSON.parse(JSON.stringify(collection)); function update(id, prop, value) { if (value !== '' && prop == 'tracks') { collectionCopy[id][prop].push(value); return collectionCopy; } } update(1245, "tracks", "Addicted to Love"); console.log(collection);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.