js 列表對象根據某一字段分類
其實是這個意思,比如說我有一個列表,數據的樣子是下面的樣子,一個五種,分了兩類,食物和飲料。我們想把這五種東西按照類別進行分類,就可以使用這個方式。
[{
name: '蘋果',
type: '食物',
price: '3'
},{
name: '牛奶',
type: '飲料',
price: '2'
},{
name: '香蕉',
type: '食物',
price: '2'
},{
name: '果汁',
type: '飲料',
price: '3'
},{
name: '菠蘿',
type: '食物',
price: '4'
}]
直接上代碼:
// 數據分類 傳進要分類的數據列表
dealWithData(data) {
let c = [];
let d = {};
data.forEach(element => {
if (!d[element.type]) { // 按照type分類
c.push({
type: element.type,
list: [element]
});
d[element.type] = element;
} else {
c.forEach(ele => {
if (ele.type== element.type) {
ele.list.push(element);
}
});
}
});
return c;
}
分完類之后就是 :
[{
type: '食物',
list: [{
name: '蘋果',
type: '食物',
price: '3'
},{
name: '香蕉',
type: '食物',
price: '2'
},{
name: '菠蘿',
type: '食物',
price: '4'
}]
},{
type: '飲料',
list: [{
name: '牛奶',
type: '飲料',
price: '2'
},{
name: '果汁',
type: '飲料',
price: '3'
}]
}]
就是這個樣子,其實還有更多的辦法,這是其中一個,其他的可以百度或者自己寫一下。
