重複オブジェクトを結合してその数量を追加するためにこの関数を書いています。javascriptのsome()関数で使用されるオブジェクトへのアクセス
数量を増やすことに問題があります。
function removeDuplicates (input){
var new_array = [];
input.forEach(function(unmerged){
if(new_array.some(item => item.model === unmerged.model)){
item.quantity += unmerged.quantity; ////this throws error
} else {
new_array.push(unmerged);
}
});
return new_array;
};
「アイテム」はsome()関数内で作成され使用され、アクセスできなくなったとします。どのように私はそのプロパティを編集できるようにこの機能を修正することができますか?
例:関数の前
:機能の後
var product_array = [
{model:1, quantity:3},
{model:1, quantity:2},
{model:2, quantity:1}
];
:
var product_array = [
{model:1, quantity:5},
{model:2, quantity:1}
]
あなたの配列の例は前/後に追加することはできますか? – Andy
@Andy例を追加しました。 – Suavocado
'item'は' .some() 'の外で定義されていません。同じ 'item 'の' quantity'を自分自身に追加する目的は何ですか?期待される結果は何ですか? – guest271314