我在JSON中获取重复值。我想用新的值替换先前的值。
var obj = {};
obj.Product_Id = product_id;
obj.Qty = j;
var arr = [];
arr.push(obj);
var json = JSON.stringify(arr);
输出为[{“Product_id”:1,“数量”:1},{“Product_id”:2,“数量”:1},{“Product_id”:1,“数量”:2}]
我希望这是[{“Product_id”:1,“数量”:2},{“Product_id”:2,“数量”:1}]
如果键重复其值,则应替换之前的值,而不是添加重复值
答案 0 :(得分:0)
如果要维护唯一键,则必须使用此键删除任何现有元素,然后添加新对象
var arr = ...;
var newObj = ...;
arr = arr.filter(function(el) { return el.Product_id != newObj.Product_id; });
arr.push(newObj);
如果您想维护订单并知道已存在此密钥的元素,您可以使用map
var arr = ...;
var newObj = ...;
arr = arr.map(function(el) {
if (el.Product_id != newObj.Product_id)
return el;
return newObj;
});
有关数组方法和属性的参考,您可以查看Array
。