我有一个JSON对象:
var retrieveSections=[{key:1, label:"James Smith"} ];
我想在其中推送其他一些对象:
retrieveSections.push({key:5, label:"Joelle Six"});
但是当我尝试使用相同的键和标签添加另一个对象时,我不希望将它添加到我的JSON对象中。所以我不想再次推送这个对象:
retrieveSections.push({key:5, label:"Joelle Six"});
答案 0 :(得分:1)
我不希望它被添加到我的JSON对象中。所以我不想再次推送这个对象
您必须先进行搜索,看看是否已存在key
的条目。
if (!retrieveSections.some(function(entry) { return entry.key === newEntry.key;})) {
retrieveSections.push(newEntry);
}
或者在现代JavaScript(ES2015 +)中:
if (!retrieveSections.some(entry => entry.key === newEntry.key)) {
retrieveSections.push(newEntry);
}
但是你使用唯一键的事实表明你可能想要一个对象或Map
而不是一个数组,至少在你构建时,要更快地检查预先存在的键。然后,当你完成后,你可以从结果中生成一个数组,如果它需要是一个数组。