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

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

如何根據(jù)字段搜索嵌套對象和分組

如何根據(jù)字段搜索嵌套對象和分組

回首憶惘然 2021-10-14 16:52:10
我有一個包含嵌套對象的數(shù)組,我想根據(jù)特定字段過濾對象。Items 數(shù)組包含一個 item 對象,該對象包含一些特定的字段,如 name、id、price 和 vendorid。我想根據(jù) vendorid 字段對數(shù)組進(jìn)行排序和過濾。例如像這樣的數(shù)組:var items=[{item:{name:"cap",                  id:"5d767e1358ad1d0ca4894592",                  price:50,                   vendorid:"5d72d2a6d87c4628ba60e046"                 },            }            {item:{name:"shorts",                  price:100,                  vendorid:"5d71c51f2092d318a1bf8f53"                 }            },            {item:{name:"shoes",                  price:90,                  vendorid:"5d71c51f2092d318a1bf8f53"                  }            }            {item:{name:"black hood",                  price:120,                  vendorid:"5d71c51f2092d318a1bf8f53"                  }            }           ]我想創(chuàng)建一個輸出這個的對象:results = {"5d71c51f2092d318a1bf8f53":[{name:"shorts"                                        price:100,                                     vendorid:"5d71c51f2092d318a1bf8f53"},                                       {name:"shoes",                                            price:90,                                     vendorid:"5d71c51f2092d318a1bf8f53"},                                       {name:"black hood",                                        price:120,                                     vendorid:"5d71c51f2092d318a1bf8f53"}                                   ],           "5d72d2a6d87c4628ba60e046":[{name:"cap",                                        id:"5d767e1358ad1d0ca4894592",                                        price:50,                                        vendorid:"5d72d2a6d87c4628ba60e046"                                       }                                      ]          }結(jié)果對象格式為{vendorid:[array containing objects with the same vendorid]}.非常感謝?。?!
查看完整描述

1 回答

?
喵喔喔

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

您可以使用reduce()方法來做到這一點。


var items = [{ item: { name: "cap", id: "5d767e1358ad1d0ca4894592", price: 50, vendorid: "5d72d2a6d87c4628ba60e046" } } ,{ item: { name: "shorts", price: 100, vendorid: "5d71c51f2092d318a1bf8f53" } }, { item: { name: "shoes", price: 90, vendorid: "5d71c51f2092d318a1bf8f53" } }, { item: { name: "black hood", price: 120, vendorid: "5d71c51f2092d318a1bf8f53" } } ];


let result = items.reduce((obj, currentValue) => {

  

  if (!obj[currentValue.item.vendorid]) {

    obj[currentValue.item.vendorid] = [];

  }

  

   obj[currentValue.item.vendorid].push({

     ...currentValue.item

   });

  

  return obj;

}, {});


const orderedResult = {};


// Sorting on vendorid.

Object.keys(result).sort().forEach(key => orderedResult[key] = result[key]);


console.log(orderedResult);

關(guān)于對象屬性排序的說明:


從 ECMAScript 2015 (ES6) 開始,對象自身的屬性對于某些操作確實具有順序,但依賴它并不是一個好主意。如果順序很重要,那么最好使用數(shù)組或類似的東西。


查看完整回答
反對 回復(fù) 2021-10-14
  • 1 回答
  • 0 關(guān)注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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