JSON中的重复值

时间:2013-02-03 13:33:34

标签: javascript json

我在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}]

如果键重复其值,则应替换之前的值,而不是添加重复值

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