3 回答

TA貢獻1862條經(jīng)驗 獲得超7個贊
你可以使用一個Map和map
Map使用dateas 鍵從第二個數(shù)組創(chuàng)建一個
循環(huán)遍歷第一個數(shù)組,如果日期可用于對應的Mapper使用值,否則使用當前元素的價格Mapperdate
let a = [{"date": "2019-10-07","price": "1313.01"},{"date":"2019-10-08","price": "1276.21"},{"date": "2019-10-09","price": "1257.75"}]
let b = [{ "date": "2019-10-07","price": "2000.10"},{"date": "2019-10-09","price": "1356.75"}]
let mapper = new Map(b.map(({ date, price }) => [date, price]))
let final = a.map(({ date, price }) => {
return mapper.has(date) ? mapper.get(date) : price
})
console.log(final)

TA貢獻1817條經(jīng)驗 獲得超14個贊
您可以將它們轉(zhuǎn)換為對象,然后合并它們并取值:
const toObject = array => Object.fromEntries(
array.map(
({date,price}) => [date, price]
)
);
const prices = Object.values(
Object.assign(
toObject(array1),
toObject(array2)
)
);
您可以使用這種方法組合任意數(shù)量的數(shù)組:
const prices = Object.values(
Object.assign(
...arrays.map(toObject)
)
);
它將始終采用具有相同日期的最后一項。

TA貢獻1777條經(jīng)驗 獲得超10個贊
使用mapand find,如果從arr2is 中找到結(jié)果undefined將使用 from 的值arr1。
const arr1 = [{
"date": "2019-10-07",
"price": "1313.01"
}, {
"date": "2019-10-08",
"price": "1276.21"
}, {
"date": "2019-10-09",
"price": "1257.75"
}];
const arr2 = [{
"date": "2019-10-07",
"price": "2000.10"
}, {
"date": "2019-10-09",
"price": "1356.75"
}];
const result = arr1.map((item) => (arr2.find((item2) => item.date === item2.date) || item).price);
添加回答
舉報