gpt4 book ai didi

javascript - 从 JSON 访问记录并添加或删除信息

转载 作者:行者123 更新时间:2023-12-03 07:05:52 25 4
gpt4 key购买 nike

我是 Javascript 新手,所以这可能相当简单。

我有这个 JSON:

var collection = {
2548: {
album: "Slippery When Wet",
artist: "Bon Jovi",
tracks: [
"Let It Rock",
"You Give Love a Bad Name"
]
},
2468: {
album: "1999",
artist: "Prince",
tracks: [
"1999",
"Little Red Corvette"
]
},
1245: {
artist: "Robert Palmer",
tracks: [ ]
},
5439: {
album: "ABBA Gold"
}
};

这个函数:

// Keep a copy of the collection for tests
var collectionCopy = JSON.parse(JSON.stringify(collection));

function updateRecords(id, prop, value) {
if (value !== "" && prop !== "tracks"){
return collection.id.prop.value;
} else if (value !== "" && prop === "tracks"){
return collection.id.prop.push(value);
} else {
delete collection.id.prop.value;
}

return collection;
}

这些是我的测试:

updateRecords(5439, "artist", "ABBA");

updateRecords(2548, "artist", "");

updateRecords(1245, "tracks", "addicted to love");

updateRecords(2458, "tracks", "");

我需要做的是编写一个函数,该函数将访问 JSON 信息,并在参数 value 不为空时添加信息(value ! == "") 且 prop 参数不是 tracks (props !== "tracks) 更新或设置值参数 prop

此外,如果参数 prop 是 Tracks (props === "tracks") 并且参数 value 也非空白 ( value !== "") 我需要将值推送到 JSON 文件内 tracks 的末尾。

我的问题是我该如何去做呢?我的显然失败了,我知道我需要删除推送信息,但是访问正确的数据让我感到困惑,我会做类似的事情吗:return collection.id.prop.push(value);?

最佳答案

请注意,您在代码中使用了collection.id.prop.value。这意味着它不会解析点后的变量,因为 a.b is equivalent to a["b"] .

这意味着您正在尝试访问 collection 上名为 id 的属性,等等。

您应该使用collections[id][prop].value

var collectionCopy = JSON.parse(JSON.stringify(collection));

function updateRecords(id, prop, value) {
if (value !== "" && prop !== "tracks"){
return collection[id][prop].value;
} else if (value !== "" && prop === "tracks"){
return collection[id][prop].push(value);
} else {
delete collection[id][prop].value;
}

return collection;
}

关于javascript - 从 JSON 访问记录并添加或删除信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36828452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com