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

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

通過給定的鍵將兩個對象數(shù)組合并為一個并復(fù)制其他值

通過給定的鍵將兩個對象數(shù)組合并為一個并復(fù)制其他值

縹緲止盈 2022-01-07 13:24:28
我有兩個包含相似值的對象數(shù)組data = [array1, array2]array1 = [{hour: "565", age: "21", id: "1", naban: "sdfsd"}, {hour: "515", age: "25", id: "2", naban: "sf"}]array2 = [{hour: "56454", age: "21", id: "1", too: "898"}, {hour: "8979", age: "25", id: "2", too: "234234"},  {hour: "65465", age: "27", id: "6", too: "123"}]我有一個數(shù)組,其中這兩個對象集的值將用于合并keys= ['id', 'id']我想合并這些對象并創(chuàng)建一個對象數(shù)組,如下所示:result = [{hour: "565", hour2: "56454", age: "21", age2: "21", id: "1", too: "898", naban: "sdfsd"}, {hour: "515", hour2: "8979", age: "25", age2: "25", id: "2", too: "234234", naban: "sf"}, {hour: "65465", age: "27", id: "6", too: "123"} ]標(biāo)準(zhǔn):我想保留所有不在鍵數(shù)組中的信息,例如。如果您查看結(jié)果數(shù)組,您將看到 hour 和 hour2 值。如果鍵不匹配,它將按原樣推送對象(例如結(jié)果數(shù)組中的第三項)這是我到目前為止所做的:mergeOjects = (object, keys) => {const sameKeys = Object.values(keys);const data = Object.values(object);if (data[0].length > data[1].length) {  const yarrak = data[0].map((item, i) => {    if (item[sameKeys[0]] === data[1][i][sameKeys[1]]) {      return Object.assign({}, item, data[1][i]);    }    return Object.assign({}, item);  });  console.log({ sameKeys, data, yarrak });} else {  const yarrak = data[1].map((item, i) => {    if (data[0][i]) {      if (item[sameKeys[1]] === data[0][i][sameKeys[0]]) {        return Object.assign({}, item, data[0][i]);      }    }    return Object.assign({}, item);  });  console.log({ sameKeys, data, yarrak });}};它可能需要一些清潔,但我現(xiàn)在正試圖讓邏輯工作,所以提前抱歉。我能夠完成第二個條件,但它會覆蓋小時值,而不是像示例中那樣單獨存儲
查看完整描述

1 回答

?
qq_花開花謝_0

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

您可以減少第二個數(shù)組并將所需的鍵作為查找的通用部分。


var array1 = [{ hour: "565", age: "21", id: "1", naban: "sdfsd" }, { hour: "515", age: "25", id: "2", naban: "sf" }],

    array2 = [{ hour: "56454", age: "21", id: "1", too: "898" }, { hour: "8979", age: "25", id: "2", too: "234234" }, { hour: "65465", age: "27", id: "6", too: "123" }],

    data = [array1, array2],

    keys = ['id', 'id'],

    merged = data[1].reduce((r, o) => {

        var temp = r.find(q => o[keys[0]] === q[keys[1]]);

        if (temp) {

            Object

                .entries(o)

                .forEach(([k, v]) => {

                    if (keys.includes(k)) return;

                    temp[k in temp ? k + 2 : k] = v;

                });

        } else {

            r.push({ ...o });

        }

        return r;

    }, data[0]);


console.log(merged);

.as-console-wrapper { max-height: 100% !important; top: 0; }


查看完整回答
反對 回復(fù) 2022-01-07
  • 1 回答
  • 0 關(guān)注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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