gpt4 book ai didi

javascript - 通过匹配 ID 检查 json 数组中是否已存在项目

转载 作者:行者123 更新时间:2023-11-28 01:27:45 25 4
gpt4 key购买 nike

所以我有这个购物车,JSON 格式。

[{"tuote":{"id":"2","name":"Rengas 2","count":16,"price":"120.00"}},{"tuote":{"id":"1","name":"Rengas 6","count":"4","price":"25.00"}},{"tuote":{"id":"4","name":"Rengas 4","count":"4","price":"85.00"}}]

Formatted here.

因此,我想防止两次出现相同的值,并通过它们的 id 进行匹配。

这是我当前的解决方案(像蟑螂一样有缺陷,并不能真正完成工作),因为它唯一起作用的时候是当匹配值位于 JSON 字符串中的第一个时。

for (var i = 0; i < ostoskori.length; i++) {

if (ostoskori[i].tuote.id == tuoteID) {
addToExisting(tuoteID, tuoteMaara); //this doesn't matter, it works.
break //the loop should stop if addToExisting() runs
}

if (ostoskori[i].tuote.id != tuoteID) {
addNew(tuoteID, tuoteNimi, tuoteMaara, tuoteHinta); //this doesn't matter, it works.
//break

//adding break here will stop the loop,
//which prevents the addToExisting() function running
}
}
如果您想知道的话,

ostoskori 是 json。正如您可能看到的,对于 JSON 中的每个项目,addNew() 运行的次数越多。

基本上,如果 JSON 具有与 tuoteID 相同 id 的值,则应该运行 addToExisting()。如果 JSON 没有与 tuoteID 相同的值,请运行 addNew()

但是如何呢?

最佳答案

您可以使用some检查 id 是否已经存在。 some 的美妙之处在于:

If such an element is found, some immediately returns true.

如果您要迎合旧版浏览器,则该页面底部有一个填充内容。

function hasId(data, id) {
return data.some(function (el) {
return el.tuote.id === id;
});
}

hasId(data, '4'); // true
hasId(data, '14'); // false

所以:

if (hasId(data, '4')) {
addToExisting();
} else {
addNew();
}

Fiddle

关于javascript - 通过匹配 ID 检查 json 数组中是否已存在项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22486344/

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