-2

JSONで重複した値を取得しています。以前の値を新しい値に置き換えたい。

var obj = {};
obj.Product_Id = product_id;
obj.Qty = j;
var arr = [];
arr.push(obj);
var json = JSON.stringify(arr);

出力は[{"Product_id":1、 "Qty":1}、{"Product_id":2、 "Qty":1}、{"Product_id":1、 "Qty":2}]です。

これを[{"Product_id":1、 "Qty":2}、{"Product_id":2、 "Qty":1}]にします

キーがその値を繰り返す場合、重複する値を追加するのではなく、前の値を置き換える必要があります

4

1 に答える 1

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

于 2013-02-03T13:57:37.067 に答える