问题描述
我拿到的数据是一个由多个对象组成的数组;
我想根据其中一个对象的值把这个数组分成多个数组;
比如说根据其中的state的值,把state为0的单独放进一个数组;
我的思路是先遍历用if判断匹配的值和索引值将这个数组存到新数组里;
但是不知道具体怎么实现,或者有没有其他更简洁的方法。
问题出现的环境背景及自己尝试过哪些方法
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
我拿到的数据是一个由多个对象组成的数组;
我想根据其中一个对象的值把这个数组分成多个数组;
比如说根据其中的state的值,把state为0的单独放进一个数组;
我的思路是先遍历用if判断匹配的值和索引值将这个数组存到新数组里;
但是不知道具体怎么实现,或者有没有其他更简洁的方法。
// 请把代码文本粘贴到下方(请勿用图片代替代码)
数据: let data = [
{
state: 0, value: "测试文本", sex: 1
},
{
state: 66, value: "测试文本", sex: 2
},
{
state: 99, value: "测试文本", sex: 1
},
{
state: 0, value: "测试文本", sex: 2
},
];
想要结果:按照state分类
let obj = {};
for(let item of data){
obj[item.state] === undefined ?
obj[item.state] = [item]
: obj[item.state].push(item)
}
结果:
arr.reduce((result,v)=>{
if(v.state in result){
result[v.state].push(v)
}else{
result[v.state]=[v]
}
return result;
},{})
let arr = [{name:'a',age:18},{name:'b',age:12},{name:'c',age:18}];
let obj = {};
for(let i of arr) {
obj[i.age]===undefined?obj[i.age]=[i]:obj[i.age].push(i);
}
console.log(obj)
13 回答12.9k 阅读
7 回答2.1k 阅读
5 回答1.4k 阅读
3 回答1.3k 阅读✓ 已解决
5 回答1.5k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决