以下是我的json代码:
{
"uID": "4564646",
"favorites": [
{ "name" : "my store",
"id" : "87654321",
"items":
[
{
"productID": "46565",
"title": "Project",
"type": "Weekend Project"
},
{
"productID": "112",
"title": "Bathroom",
"type": "Weekend Project"
},
{
"productID": "785",
"title": "link",
"type": "main Project"
}
]
}
]
}
现在,我想检查每个产品的PRODUCTID,并从与我的产品ID 112匹配的商品中删除该条目。 我只想使用javascript,数组项不是固定的,我还必须在应用删除方法之前解析json。
答案 0 :(得分:2)
var obj = JSON.parse(json_string);
var fav_items = obj.favorites[0].items;
for (var i = fav_items.length - 1; i >= 0; i--) {
if (fav_items[i].productID == 112) {
fav_items.splice(i, 1);
}
}
请注意,您需要向后执行循环,因为当您从数组中拼出一个元素时,它之后的所有元素都会向下移动索引。如果你执行一个正常的向上循环,你将跳过删除后的元素。
答案 1 :(得分:0)
只是做:
for (var i = 0; i < data.favorites[0].items.length; i++) {
if (data.favorites[0].items[i].productID != 112) {
data.favorites[0].items.splice(i, 1);
i--; //DONT FORGET THIS
}
}
splice
可以删除数组元素 - 不要忘记i--
但是当在循环中拼接时,因为数组有可能在每次迭代时缩短。