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ù)組或類似的東西。
添加回答
舉報