我試圖迭代具有不同屬性的對象數組。我正在動態添加對象,並且想要檢查對象的屬性是否存在於數組中,然後只覆蓋該值,否則將其添加到數組中。從具有唯一值的對象數組中過濾唯一屬性(如果存在),則覆蓋該值
對於e.x.
var arr = [
{"value":"abc"},
{"type":"def"},
{"status":"ghi"},
{"value":"xyz"}
]
預期的結果:
arr = [
{"value":"xyz"},
{"type":"def"},
{"status":"ghi"}
]
我試圖至今沒有工作。這裏是我的代碼:
var arr = [
{"value":"abc"},
{"type":"def"},
{"status":"ghi"},
{"value":"abc"}
]
var obj={};
var key1 = "type", value="xyz";
obj[key1] = value;
var newarr = arr.filter(function(entry,i) {
if (!entry.hasOwnProperty(key1)) {
return true;
}
});
newarr.push(obj);
請注意,與obj將是動態的,所以我的代碼工作正常進行第一次當KEY1的屬性不會改變。一旦我將key1的值從「type」更改爲「status」,它將添加對象2次。
有人能幫我解決這個問題嗎?
更換
type
如何'type'變異到'數據類型'?還是兩個不同? –錯字更正! –
這兩個'value'鍵和更新會發生什麼? –