[英]Update object array key with new value in javascript/React-native
[英]how to update object of array with new object in react native
我有一個包含 2 個對象的數組 logicalAddress,現在我有另一個具有某些值的對象 obj,我必須將數組 logicalAddress 添加為新對象或更新現有對象。 如果 obj 中的 orderNo 可用並且它與數組中的任何 orderNo 匹配,那么它應該更新完整的對象,否則它應該添加新的 obj。 請幫忙 。 越來越糊塗了。
logicalAddress
0:
orderNo: "AB1"
RelNo: "001"
denomination: "Testing"
lineNo: "09"
quantity: "4000"
1:
orderNo: "AB2"
RelNo: ""
denomination: "Testing"
lineNo: ""
quantity: "5000"
const obj ={
orderNo: "AB2"
RelNo: ""
denomination: "Testing"
lineNo: ""
quantity: "8000"
}
因此,您將需要遍歷 logicalAddress 數組中的每個項目並將其與您的對象進行比較。 就像您說的,為了進行比較,我們要查找 orderNo 是否存在以及它是否與數組中的任何 orderNo 匹配。 假設您使用的 ES6 可能看起來像。
const logicalAddress = [
{
orderNo: 'AB1',
RelNo: '001',
denomination: 'Testing',
lineNo: '09',
quantity: '4000',
},
{
orderNo: 'AB2',
RelNo: '',
denomination: 'Testing',
lineNo: '',
quantity: '5000',
},
];
const obj = {
orderNo: 'AB2',
RelNo: '',
denomination: 'Testing',
lineNo: '',
quantity: '8000',
};
let objMatch = false;
if (obj.orderNo) { // If we have an order number
logicalAddress.forEach((address, i) => { // Loop array
if (address.orderNo === obj.orderNo) { // If address and obj numbers match
// Update value
logicalAddress[i] = obj;
objMatch = true;
}
});
}
if (!objMatch) { // If after looping through we have no match
logicalAddress.push(obj); // Add obj to array
}
let logicalAddress = [
{
orderNo: 'AB1',
RelNo: '001',
denomination: 'Testing',
lineNo: '09',
quantity: '4000',
},
{
orderNo: 'AB2',
RelNo: '',
denomination: 'Testing',
lineNo: '',
quantity: '5000'
}
];
const obj = {
orderNo: 'AB2',
RelNo: '',
denomination: 'Testing',
lineNo: '',
quantity: '8000',
};
查找記錄是否出現在數組中。 如果是,則使用findIndex
獲取它的索引並刪除它並推送 else 直接推送它。
const objIndex = logicalAddress.findIndex(address => address.orderNo ===
obj.orderNo);
if(objIndex !== -1){
logicalAddress.splice(objIndex);
}
logicalAddress.push(obj);
console.log(logicalAddress);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.