我想根据"array2"更改"productID" = 1 的"array1"的"orderID"("id"数组)


let array1 = [
{ id:1, name:'name1', orderId:3, productID:1},
{ id:2, name:'name2', orderId:2, productID:1},
{ id:3, name:'name3', orderId:1, productID:2},
{ id:4, name:'name4', orderId:4, productID:1},
{ id:5, name:'name5', orderId:2, productID:2},
{ id:6, name:'name6', orderId:4, productID:2},
{ id:7, name:'name7', orderId:3, productID:1}
]

我想更改"orderID"array1"的"productID"= 1

let array2 = [4,2,7,1];   // this is an array of "id"

我想更改"orderID"array1"的"productID"= 1在"array2"如果"id"4";对象将会{id:4, name:'name4', orderId:1, productID:1}

在"array2"如果"id"是"2";对象将会{id:2, name:'name2', orderId:2, productID:1}

在"array2"如果"id"7";对象将会{id:7, name:'name7', orderId:3, productID:1}

在"array2"如果"id"是"1";对象将会{id:1, name:'name1', orderId:4, productID:1}

for (let i of array1){
// console.log(i)
for (let j in i){
// console.log(j)
// console.log(i[j])
for (let k of array2)
{
if ((j==='id' && i[j]===k) && "orderID"){
console.log(i)
}
}
}
}

// expected output = 
// [   { id:1, name:'name1', orderId:4, productID:1},
//     { id:2, name:'name2', orderId:2, productID:1},
//     { id:3, name:'name3', orderId:1, productID:2},
//     { id:4, name:'name4', orderId:1, productID:1},
//     { id:5, name:'name5', orderId:2, productID:2},
//     { id:6, name:'name6', orderId:4, productID:2},
//     { id:7, name:'name7', orderId:3, productID:1}   ]

你可以用新的orderId映射对象,其中id是给定的。

const
data = [{ id: 1, name: 'name1', orderId: 3, productID: 1 }, { id: 2, name: 'name2', orderId: 2, productID: 1 }, { id: 3, name: 'name3', orderId: 1, productID: 2 }, { id: 4, name: 'name4', orderId: 4, productID: 1 }, { id: 5, name: 'name5', orderId: 2, productID: 2 }, { id: 6, name: 'name6', orderId: 4, productID: 2 }, { id: 7, name: 'name7', orderId: 3, productID: 1 }],
ids = [4, 2, 7, 1],
result = data.map(o => {
const orderId = ids.indexOf(o.id) + 1;
return orderId
? { ...o, orderId }
: o
});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

最新更新