如何解决Reduce 函数创建一个包含一半数据的数组
我正在尝试根据每个对象内的属性值将数据分类到单独的数组中。我正在使用一个 reduce 函数,这对我来说是新的,但仍然很混乱。
我的数据如下所示:
const data = [{
score: 2,category: "date of admission"
subcategory: 2-days
},{ score: 12,category: "Vitals",subcategory: "bloodPressure",},{
score: 4,category: "date of admission"
subcategory: 3-days
}...]
我的reduce函数是这样的:
const grouped = data.reduce((cat,item,index,data) => {
for (index = 0; data.length; index++) {
cat[item.category] = [];
cat[item.category].push(item);
return cat;
}
},{});
我遇到的问题是当我 console.log(grouped)
每个数组都有正确的类别标签时的输出,但在数组内部只有 1 个对象。即使数据可能有多个相同类别的项目。我不确定我在这里做错了什么。任何建议都会有所帮助。
解决方法
我认为您正在寻找这样的东西:
const grouped = data.reduce((catetories,item) => {
const category = catetories[item.category] || [];
return {
...catetories,[item.category]: [
...category,item,]
}
},{});
const groupedArr = Object.keys(grouped).map((key) => grouped[key]);
,
const data = [{
score: 2,category: "date of admission",subcategory: "2-days"
},{ score: 12,category: "Vitals",subcategory: "bloodPressure",},{
score: 4,subcategory: "3-days"
}];
const cat = {};
for (let c of data) {
if (cat[c.category]) {
cat[c.category].push(c);
} else {
cat[c.category] = [c];
}
}
console.log(cat)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。