我想对这个 json 对象进行分类
var lists=[{"No":58,"Time":"Feb-2020","Labels":"Mahasiswa","FullName":"Raga"},
{"No":59,"Time":"Feb-2020","Labels":"Mahasiswa","FullName":"Raga"},
{"No":60,"Time":"Feb-2020","Labels":"Umum","FullName":"Raga"},
{"No":61,"Time":"Feb-2020","Labels":"Mahasiswa","FullName":"Raga"},
{"No":62,"Time":"Feb-2020","Labels":"Pelajar","FullName":"Raga"},
{"No":63,"Time":"Feb-2020","Labels":"Umum","FullName":"Rga"},{}];
如何根据时间和标签来统计 的出现次数。 例如
let time= [Feb-2020]
let labelsmahasiswa= [3]
let labelsumum= [2]
let labelspelajar= [1]
我已经成功地仅根据时间计算了发生次数
let count = lists.reduce((newObj, obj) => {
if(newObj[obj.Time]) {
newObj[obj.Time] = newObj[obj.Time]+1;
} else {
newObj[obj.Time] = 1;
}
return newObj;
}, {});
我像这样返回
var lists2 = [[#Time],[#Occurences]];
for(i=0;i<(Object.keys(count).length-1);i++){
lists2[0].push (Object.keys(count)[i]);
lists2[1].push (Object.values(count)[i]);
};
当我console.log列表时
console.log(lists2)
//[[Feb-2020],[6]]
提前谢谢你。
最佳答案
您可以将一个带有 Time
的对象作为包含 Labels
计数的嵌套对象的键。
var lists = [{ No: 58, Time: "Feb-2020", Labels: "Mahasiswa", FullName: "Raga" }, { No: 59, Time: "Feb-2020", Labels: "Mahasiswa", FullName: "Raga" }, { No: 60, Time: "Feb-2020", Labels: "Umum", FullName: "Raga" }, { No: 61, Time: "Feb-2020", Labels: "Mahasiswa", FullName: "Raga" }, { No: 62, Time: "Feb-2020", Labels: "Pelajar", FullName: "Raga" }, { No: 63, Time: "Feb-2020", Labels: "Umum", FullName: "Rga" }, {}],
result = lists.reduce((r, { Time, Labels }) => {
if (!Time) return r;
r[Time] = r[Time] || {};
r[Time][Labels] = (r[Time][Labels] || 0) + 1;
return r;
}, {});
console.log(result);
关于javascript - 如何根据多变量对数据进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60204854/