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

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

在javascript中過濾對(duì)象數(shù)組

在javascript中過濾對(duì)象數(shù)組

紅顏莎娜 2021-06-22 17:01:24
我正在使用 JavaScript 創(chuàng)建一個(gè)項(xiàng)目。我在過濾對(duì)象數(shù)組時(shí)遇到了問題:這是數(shù)組:var arr1 = [{      "name": "harkaran",      "lname": "sofat",      "userId": 49,     "postedUserId": 52,      "id": 21,    },{      "name": "harkaran",      "lname": "sofat",      "userId": 49,      "postedUserId": 57,      "id": 21,    }]最終數(shù)組應(yīng)如下所示:[{    "name": "harkaran",      "lname": "sofat",      "userId": 49,     "postedUserId": 52,      "id": 21,      postedUsers:[52,57]}] 我正在嘗試創(chuàng)建新對(duì)象。這是我正在使用的方法。但不知道如何實(shí)現(xiàn)這個(gè) var arr =[] let obj = {}        obj['name'] = "";        obj['lname'] = "";        obj['userId'] = "";        obj['postedUserId'] = "";        obj['id'] = "";        obj['postedUsers'] = [];        arr.push(obj);        for(var i=0; i<arr1.length; i++){         }
查看完整描述

3 回答

?
湖上湖

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

首先,這不稱為過濾。它被稱為分組。您可以按以下步驟執(zhí)行此操作:

  • 首先reduce()在數(shù)組上使用并將累加器設(shè)置為空對(duì)象{}

  • 在每次迭代期間id,postedUserId使用解構(gòu)獲取和是單獨(dú)的變量。并使用擴(kuò)展運(yùn)算符獲取其余屬性。

  • 然后檢查id累加器中是否已經(jīng)存在當(dāng)前的項(xiàng)目。

  • 如果它在那里,則將其推postedUserId送到其postedUsers數(shù)組。

  • 如果該鍵不存在,則將id累加器上的鍵()設(shè)置為具有postedUsers空數(shù)組的對(duì)象。

var arr1 = [{"name":"harkaran","lname":"sofat","userId":49,"postedUserId":52,"id":21,},{"name":"harkaran","lname":"sofat","userId":49,"postedUserId":57,"id":21,}];


const res = arr1.reduce((ac,{id,postedUserId,...rest}) => {

  if(!ac[id]) ac[id] = {id,postedUserId,postedUsers:[],...rest};

  ac[id].postedUsers.push(postedUserId);

  return ac;


},{})


console.log(Object.values(res))

您在評(píng)論中詢問了簡(jiǎn)單for循環(huán),所以這是它的版本。


var arr1 = [{"name":"harkaran","lname":"sofat","userId":49,"postedUserId":52,"id":21,},{"name":"harkaran","lname":"sofat","userId":49,"postedUserId":57,"id":21,}];


let res = {};


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

  let {id,postedUserId,...rest} = arr1[i];

  if(!res[id]) res[id] = {id,postedUserId,postedUsers:[],...rest};

  res[id].postedUsers.push(postedUserId);

}


console.log(Object.values(res))


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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