第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

比較兩個對象以獲取匹配元素

比較兩個對象以獲取匹配元素

Qyouu 2021-11-12 14:23:10
我正在比較具有相同結(jié)構(gòu)的兩個不同對象:對象 1:[{    "date": "2019-10-07",    "price": "1313.01"}, {    "date": "2019-10-08",    "price": "1276.21"}, {    "date": "2019-10-09",    "price": "1257.75"}]對象 2:[{    "date": "2019-10-07",    "price": "2000.10"}, {    "date": "2019-10-09",    "price": "1356.75"}]我正在嘗試根據(jù)日期返回一組價格。在我的例子中,我試圖返回["2000.10", "1276.21", "1356.75"]該數(shù)組將返回對象 2 的所有價格。但是,您可以看到對象 2 不包含“2019-10-08”的日期,因此我需要從對象 1 返回該日期的價格。這些對象長度是動態(tài)的,但對象 1 總是比對象 2 長,因為我從對象 1 中獲取了缺失值。返回的數(shù)組將始終是對象 1 的大小。我面臨的問題是循環(huán)遍歷并根據(jù)索引檢查價格。我的嘗試是遍歷對象 1,然后檢查每個索引的日期是否匹配。但是,當日期不匹配時,我遇到了問題,因此索引不同步。
查看完整描述

3 回答

?
牧羊人nacy

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)


查看完整回答
反對 回復 2021-11-12
?
大話西游666

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)

  )

);

它將始終采用具有相同日期的最后一項。


查看完整回答
反對 回復 2021-11-12
?
不負相思意

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);



查看完整回答
反對 回復 2021-11-12
  • 3 回答
  • 0 關(guān)注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號