我有一个对象数组,表示如下:
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
解决方法如下:
1.)验证对象是否为空。
2.).some()
在对象上使用以迭代它。
3.)检查finalObject
现在的e
,是否与我组装的临时对象中的钥匙相匹配o
。
4.)更新需要更新的值并返回true;
注意:最初,我打算通过其索引删除该对象,然后将其替换为新对象。这也可以通过使用.splice()
并获取您所在数组中当前对象的索引来工作。
这是更新版本:
if (o.ConsolidatedItem_quantity != '') {
var result = $.grep(finalObject, function(e) {
return e.ConsolidatedItem_itemNumber == o.ConsolidatedItem_itemNumber;
});
if (result.length == 0) {...}
else {
finalObject.some(function (e) {
if(e.ConsolidatedItem_itemNumber == o.ConsolidatedItem_itemNumber){
var a;
a = +e.ConsolidatedItem_quantity + +o.ConsolidatedItem_quantity;
e.ConsolidatedItem_quantity = a.toString();
document.getElementById(o.ConsolidatedItem_itemNumber).value=a;
return true;
};
});
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句