如果 ID 在 array1 中匹配,則嘗試更新 array2 中的日期,以便它們不為空。
let array1 = [{"id":1, "date": "23/11/21"}, {"id":2, "date":"20/11/21"}, {"id":3, "date":"15/11/21"}]
let array2 = [{"id":1, "name": "John", "date": null}, {"id":2, "name": "Max", "date": null}, {"id":3, "name": "Peter", "date": null}]
期望的輸出:
let array2 = [{"id":1, "name": "John", "date":"23/11/21" }, {"id":2, "name": "Max", "date": "20/11/21"}, {"id":3, "name": "Peter", "date": "15/11/21"}]
如何在 indexof() 方法中使用回圈?
uj5u.com熱心網友回復:
您可以使用一種map方法遍歷第二個陣列,id在第一個陣列中找到一個相同的元素并從那里獲取日期:
let array1 = [{
"id": 1,
"date": "23/11/21"
}, {
"id": 2,
"date": "20/11/21"
}, {
"id": 3,
"date": "22/11/15"
}]
let array2 = [{
"id": 1,
"name": "John",
"date": null
}, {
"id": 2,
"name": "Max",
"date": null
}, {
"id": 3,
"name": "Peter",
"date": null
}];
const updated = array2.map(el => {
const isIdInFirstArr = array1.find(e => e.id === el.id);
if (isIdInFirstArr) {
el.date = isIdInFirstArr.date;
}
return el;
})
console.log(updated)
uj5u.com熱心網友回復:
1)您可以使用以下方式有效地實作這一目標Map:
let array1 = [
{ id: 1, date: "23/11/21" },
{ id: 2, date: "20/11/21" },
{ id: 3, date: "15/11/21" },
];
let array2 = [
{ id: 1, name: "John", date: null },
{ id: 2, name: "Max", date: null },
{ id: 3, name: "Peter", date: null },
];
const map = new Map();
array1.forEach((o) => map.set(o.id, o.date));
let result = array2.map((o) => ({ ...o, date: o.date ?? map.get(o.id) }));
console.log(result);
/* This is not a part of answer. It is just to give the output full height. So IGNORE IT */
.as-console-wrapper { max-height: 100% !important; top: 0; }
2)您可以使用map和輕松實作結果find
let array1 = [
{ id: 1, date: "23/11/21" },
{ id: 2, date: "20/11/21" },
{ id: 3, date: "15/11/21" },
];
let array2 = [
{ id: 1, name: "John", date: null },
{ id: 2, name: "Max", date: null },
{ id: 3, name: "Peter", date: null },
];
let result = array2.map(o => ({ ...o, date: o.date ?? array1.find(obj => obj.id === o.id)?.date}));
console.log(result)
/* This is not a part of answer. It is just to give the output full height. So IGNORE IT */
.as-console-wrapper { max-height: 100% !important; top: 0; }
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/363928.html
標籤:javascript 节点.js 数组 json
上一篇:改變一個陣列
