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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

根據(jù)最新日期過濾數(shù)組響應(yīng)中的單個(gè)值

根據(jù)最新日期過濾數(shù)組響應(yīng)中的單個(gè)值

LEATH 2023-06-15 09:35:55
我有兩個(gè)數(shù)組 a 和 b我想根據(jù)最新的數(shù)組將數(shù)組的remarks和附加到數(shù)組。delivery_statusabcreated_date_timeapo_number應(yīng)該用作比較參數(shù)。因?yàn)樗莾蓚€(gè)數(shù)組中的公共字段這個(gè)怎么做?a=[{    actual_delivery_date: "2020-10-22"    created_date_time: "2020-10-24T22:18:29Z"    delivery_status: "Delivered"    id: 16    po_number: 1125    remarks: "test"    user: "pruser5"},{    actual_delivery_date: "2020-10-22"    created_date_time: "2020-10-24T22:18:29Z"    delivery_status: "Delivered"    id: 16    po_number: 1124    remarks: "test1"    user: "pruser5"},{    actual_delivery_date: "2020-10-29",    created_date_time: "2020-10-24T23:02:05Z",    delivery_status: "Late",    id: 22,    po_number: 1125,    remarks: "asd",    user: "pruser7"}]    b= [{        po_num: 1125,        priority: "Medium",        processId: "30820307",        },        {        po_num: 1124,        priority: "Large",        processId: "30820308",    }]我想要的輸出,b= [{        po_num: 1125,        priority: "Medium",        processId: "30820307",        delivery_status: "Delivered",        remarks: "test"        },        {        po_num: 1124,        priority: "Large",        processId: "30820308",        delivery_status: "Late",        remarks: "asd"    }]
查看完整描述

2 回答

?
慕尼黑的夜晚無繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊

所以聽起來你只想將 A 的部分附加到 B 上,如果首先,它們具有相同的po_number,然后你只想附加最新的created_date_time.

一種方法是:

  1. created_date_time在(最遲日期在前)之前訂購(gòu) A

  2. 循環(huán) B

  3. 對(duì)于B中的每一項(xiàng),使用findA上的方法獲取與當(dāng)前B條目po_number相同的條目

  4. 從A中找到的item中拉出delivery_statusand remarks,添加到當(dāng)前B表項(xiàng)中

代碼:

a.sort((x, y) => y.created_date_time.localeCompare(x.created_date_time));

for (const bEntry of b) {

  const matchedEntryA = a.find(aEntry => bEntry.po_num === aEntry.po_number);

  if (matchedEntryA) {

    bEntry.delivery_status = matchedEntryA.delivery_status;

    bEntry.remarks = matchedEntryA.remarks;

  }

}

值得注意的是,在您預(yù)期的輸出示例中, b with po_num: 1125hasremarks: test_1不是 A 中的條目 with the latest created_date_timefor 1125。我相信它應(yīng)該是remarks: asd。


如果您確實(shí)希望此代碼獲得預(yù)期的答案,請(qǐng)將我的第一行代碼更改為:(a.sort((x, y) => x.created_date_time.localeCompare(y.created_date_time));在排序 compareFunction 返回中切換 y 和 x)


還值得注意的是,如果您希望 A 非常長(zhǎng),則可以通過跳過排序步驟并使用不同的數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)更有效的方法。


希望這有幫助!


查看完整回答
反對(duì) 回復(fù) 2023-06-15
?
一只斗牛犬

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊

為您提供提示,以便您可以自己嘗試。

您可以實(shí)例化一個(gè)地圖,然后遍歷 Arraya以添加po_number作為鍵和deliver_status,created_dateremarks在對(duì)象中作為值。如果該值已經(jīng)存在,則比較創(chuàng)建日期,如果已添加的日期較小,則替換地圖中的值。然后遍歷 Array to 并從地圖中b獲取值,將和from 地圖值添加到 Array 的項(xiàng)目。po_numdeliver_statusremarksb

您可以使用 Array 的reduce方法迭代 Arraya并生成地圖。對(duì)于 Array b,您可以使用 Array 的map方法。


查看完整回答
反對(duì) 回復(fù) 2023-06-15
  • 2 回答
  • 0 關(guān)注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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