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

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

數(shù)組比較,用新數(shù)組覆蓋老數(shù)組值

數(shù)組比較,用新數(shù)組覆蓋老數(shù)組值

慕田峪4524236 2019-03-15 14:15:04
//老數(shù)組{form_id: 1, field_id: 10, data: "215", member_id: 101}{form_id: 12, field_id: 2, data: "215212", member_id: 101}{form_id: 2, field_id: 31, data: "123", member_id: 101}//新數(shù)組{form_id: 2, field_id: 31, data: "123321", member_id: 101}需求:在老數(shù)組中找出form_id、field_id、member_id值與新數(shù)組對(duì)應(yīng)值相同的數(shù)組,然后用新數(shù)組中data的值替換老數(shù)組的值。感謝~~
查看完整描述

4 回答

?
慕姐4208626

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

方法一,直接遍歷搜尋


//老數(shù)組

const olds = [

    { form_id: 1, field_id: 10, data: "215", member_id: 101 },

    { form_id: 12, field_id: 2, data: "215212", member_id: 101 },

    { form_id: 2, field_id: 31, data: "123", member_id: 101 }

];


//新數(shù)組

const news = [

    { form_id: 2, field_id: 31, data: "123321", member_id: 101 }

];



function itemEquals(a, b) {

    return a.form_id === b.form_id

        && a.field_id === b.field_id

        && a.member_id === b.member_id

}


// 遍歷舊數(shù)據(jù),對(duì)每個(gè)元素去遍歷新數(shù)組,查找是否有對(duì)應(yīng)數(shù)據(jù)

olds.forEach(item => {

    const found = news.find(n => itemEquals(n, item));

    if (found) {

        item.data = found.data;

    }

});


console.log(olds);

上面的方面在新數(shù)據(jù)較大的時(shí)候,查詢效率會(huì)比較低,那就可以采用拼接唯一ID的方法來(lái)處理



// 根據(jù)幾個(gè)屬性生成唯一鍵,注意間隔字符的選中,一定不能造成歧義

function unique(item) {

    return `${item.form_id}-${item.field_id}-${item.member_id}`;

}


const dict = news.reduce((dict, item) => {

    dict[unique(item)] = item;

    return dict;

}, {});



olds.forEach(item => {

    const found = dict[unique(item)];

    if (found) {

        item.data = found.data

    }

});


查看完整回答
反對(duì) 回復(fù) 2019-03-21
?
胡說(shuō)叔叔

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

提供一個(gè)思路。如果數(shù)組元素比較少,可以窮舉遍歷,三層循環(huán),復(fù)雜度較高。
如果數(shù)組元素比較多,可以考慮用空間換時(shí)間。將新數(shù)組轉(zhuǎn)成容易查找的數(shù)據(jù)結(jié)構(gòu),比如多維數(shù)組,多層map,樹(shù),等,然后遍歷老數(shù)組,一邊遍歷一邊比較,找到一個(gè)就設(shè)置,找不到就跳過(guò)

查看完整回答
反對(duì) 回復(fù) 2019-03-21
?
慕工程0101907

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

let oldArray = [

  {form_id: 1, field_id: 10, data: "215", member_id: 101},

  {form_id: 12, field_id: 2, data: "215212", member_id: 101},

  {form_id: 2, field_id: 31, data: "123", member_id: 101}

];


let newArray = [{form_id: 2, field_id: 31, data: "123321", member_id: 101}];


for (let i = 0; i < oldArray.length; i++) {

  for (let a of newArray) {

    const o = oldArray[i];

    if (o.form_id === a.form_id && o.field_id === a.field_id && o.member_id === a.member_id) {

      oldArray[i].data = a.data;

    }

  }

}


console.log(oldArray);

輸出:


[ { form_id: 1, field_id: 10, data: '215', member_id: 101 },

  { form_id: 12, field_id: 2, data: '215212', member_id: 101 },

  { form_id: 2, field_id: 31, data: '123321', member_id: 101 } ]


查看完整回答
反對(duì) 回復(fù) 2019-03-21
  • 4 回答
  • 0 關(guān)注
  • 1460 瀏覽
慕課專欄
更多

添加回答

舉報(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)