我有一個呈現對象的數組如下:比較對象的數組,並刪除重複和更新 - 使用Javascript
0: Object
ConsolidatedItem_catalogId: "080808"
ConsolidatedItem_catalogItem: "undefined"
ConsolidatedItem_cost: "0"
ConsolidatedItem_description: "Test Catalog Item"
ConsolidatedItem_imageFile: "27617647008728.jpg"
ConsolidatedItem_itemNumber: "1234"
ConsolidatedItem_quantity: "1"
ConsolidatedItem_source: "CAT"
ConsolidatedItem_status: "02"
ConsolidatedItem_umCode: "EA"
1: Object
ConsolidatedItem_catalogId: ""
ConsolidatedItem_catalogItem: "undefined"
ConsolidatedItem_cost: "0"
ConsolidatedItem_description: "ALARM,SHUTDOWN SYSTEM,AXIOM,XP3, 0-1500 PSIG, HIGH AND LOW PRES Testing"
ConsolidatedItem_imageFile: ""
ConsolidatedItem_itemNumber: "10008"
ConsolidatedItem_quantity: "1"
ConsolidatedItem_source: "INV"
ConsolidatedItem_status: "02"
ConsolidatedItem_umCode: "EA"
我想更新,如果它再次添加刪除對象,或更新目的。最好用新值更新對象。我的代碼如下:
var result = $.grep(finalObject, function(e) {
return e.ConsolidatedItem_itemNumber == o.ConsolidatedItem_itemNumber;
});
console.log(result);
if (result.length == 0) {
finalObject.push(o);
shoppingCounter = finalObject.length;
$('#numberShoppedItems').text(shoppingCounter);
console.log(finalObject);
} else if (result.length == 1) {
finalObject.filter(function(x){
result = x;
console.log(result);
return x == result.ConsolidatedItem_itemNumber;
});
} else {
alert('Multiples Found');
}
}
我試圖得到確切的對象和操縱數據的多種方式,但他們都失敗了。我寧願更新對象,如果CatalogItem_itemNumber
保持相同的值,如果CatalogItem_quantity
不同 - 將CatalogItem_quantity
值一起添加並更新對象數組。
我不需要一個確切的答案,在正確的方向微調將奇蹟,雖然。我在過去的幾個小時裏查看了幾個相關的問題,但他們似乎都沒有解決這個問題。如果您知道有問題的答案,請隨時鏈接。我可能錯過了它。
沒有Underscore.js請
爲什麼,如果你已經在使用它沒有jQuery的?或者:你爲什麼將'$ .grep'與'Array :: filter'混合? – Bergi
我刪除了jQuery限制。這很令人困惑,我們在沒有jQuery的情況下進行重構,但如果它現在可以更容易就沒問題。 – user1435281
不,不,避免jQuery完成這個任務是個好主意,我只是很驚訝地看到你自己使用了它。只需重構'$ .grep'即可。 – Bergi