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

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

我怎樣才能在javascript中返回兩個(gè)對(duì)象

我怎樣才能在javascript中返回兩個(gè)對(duì)象

MYYA 2024-01-18 16:02:55
舉個(gè)例子我有兩個(gè)數(shù)組const tempData = [          { day: "Mon", temp: 33.6 },          { day: "Tue", temp: 34.6 },          { day: "Wed", temp: 33.1 },          { day: "Fri", temp: 35.6 }        ];const coughData = [          { day: "Mon", count: 2 },          { day: "Wed", count: 1 },          { day: "Thur", count: 1 },          { day: "Fri", count: 3 },          { day: "Sat", count: 1 }        ]; 我需要將這些數(shù)組合并為一個(gè),以便如果日期匹配,則計(jì)數(shù)值添加到該對(duì)象,如果不匹配,則將兩個(gè)對(duì)象添加到數(shù)組中。不知道解釋是否不太清楚預(yù)期結(jié)果應(yīng)該是這樣的:const data = [          { day: "Mon", temp: 33.6, count: 2 },          { day: "Tue", temp: 34.6 },          { day: "Wed", temp: 33.1, count: 1 },          { day: "Thur", count: 1 },          { day: "Fri", temp: 35.6, count: 3 },          { day: "Sat", count: 1 }        ];我正在嘗試像這樣使用映射函數(shù),但無(wú)法理解如果兩個(gè)對(duì)象不匹配,如何返回它們:const data = tempData.map(temp => {          coughData.map(cough => {            if (temp.day === cough.day) {              return (temp.count = cough.count);            } else {              return cough;            }          });          return temp;        });
查看完整描述

5 回答

?
拉丁的傳說(shuō)

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

day您可以收集對(duì)象中按分組的所有數(shù)據(jù),并獲取值作為結(jié)果集。


const

    addToCollection = (collection, key) => o => Object.assign(collection[o[key]] ??= {}, o),

    tempData = [{ day: "Mon", temp: 33.6 }, { day: "Tue", temp: 34.6 }, { day: "Wed", temp: 33.1 }, { day: "Fri", temp: 35.6 }],

    coughData = [{ day: "Mon", count: 2 }, { day: "Wed", count: 1 }, { day: "Thur", count: 1 }, { day: "Fri", count: 3 }, { day: "Sat", count: 1 }],

    collection = {};

    

tempData.forEach(addToCollection(collection, 'day'));

coughData.forEach(addToCollection(collection, 'day'));


console.log(Object.values(collection));

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


查看完整回答
反對(duì) 回復(fù) 2024-01-18
?
冉冉說(shuō)

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

您可以先合并數(shù)組的對(duì)象,然后.reduce()與Map一起使用來(lái)累積值。地圖可以通過(guò)day屬性作為鍵,這將允許您將相關(guān)的對(duì)象屬性分組在一起。然后,您可以將Array.from()Map 轉(zhuǎn)換回對(duì)象數(shù)組,如下所示:


const tempData = [{ day: "Mon", temp: 33.6 }, { day: "Tue", temp: 34.6 }, { day: "Wed", temp: 33.1 }, { day: "Fri", temp: 35.6 }];

const coughData = [{ day: "Mon", count: 2 }, { day: "Wed", count: 1 }, { day: "Thur", count: 1 }, { day: "Fri", count: 3 }, { day: "Sat", count: 1 }];


const arr = [...tempData, ...coughData];


const result = Array.from(arr.reduce((map, {day, ...rest}) => {

? const seen = map.get(day) || {day};

? return map.set(day, {...seen, ...rest});

}, new Map).values());


console.log(result);


查看完整回答
反對(duì) 回復(fù) 2024-01-18
?
慕神8447489

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

const tempData = [

    { day: "Mon", temp: 33.6 },

    { day: "Tue", temp: 34.6 },

    { day: "Wed", temp: 33.1 },

    { day: "Fri", temp: 35.6 }

];

const coughData = [

    { day: "Mon", count: 2 },

    { day: "Wed", count: 1 },

    { day: "Thur", count: 1 },

    { day: "Fri", count: 3 },

    { day: "Sat", count: 1 }

];


const tempRes = [...tempData, ...coughData];

const result = tempRes.reduce((acc, curr) => {

    const { day, ...rest } = curr;

    acc[day] = acc[day] ? Object.assign({}, acc[day], rest) : curr

    return acc;

}, {})

console.log(Object.values(result))

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


查看完整回答
反對(duì) 回復(fù) 2024-01-18
?
慕姐4208626

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

let newArray = Array();

let longer = (tempData.length <= coughData.length) ? coughData.length : 

tempData.length;

for(let i = 0, j = 0; i < longer; ++i, ++j) {

    newArray.push(Object.assign(coughData[i], tempData[j]));

}

打印到控制臺(tái):


[ { day: 'Mon', count: 2, temp: 33.6 },

{ day: 'Tue', count: 1, temp: 34.6 },

{ day: 'Wed', count: 1, temp: 33.1 },

{ day: 'Fri', count: 3, temp: 35.6 },

{ day: 'Sat', count: 1 } ]


查看完整回答
反對(duì) 回復(fù) 2024-01-18
?
慕妹3146593

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

您可以使用 Object.assign() javascript 函數(shù)。Object.assign()方法用于將一個(gè)或多個(gè)源對(duì)象的所有可枚舉屬性的值復(fù)制到一個(gè)目標(biāo)對(duì)象。該方法將返回目標(biāo)對(duì)象


就像這樣:


const target = { a: 1, b: 2 };

const source = { b: 4, c: 5 };


const returnedTarget = Object.assign(target, source);


console.log(target);

// expected output: Object { a: 1, b: 4, c: 5 }


console.log(returnedTarget);

// expected output: Object { a: 1, b: 4, c: 5 }

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Object/assign


查看完整回答
反對(duì) 回復(fù) 2024-01-18
  • 5 回答
  • 0 關(guān)注
  • 259 瀏覽
慕課專欄
更多

添加回答

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