怎么把一个数组对象按照状态拆分

问题描述

我拿到的数据是一个由多个对象组成的数组;
我想根据其中一个对象的值把这个数组分成多个数组;
比如说根据其中的state的值,把state为0的单独放进一个数组;
我的思路是先遍历用if判断匹配的值和索引值将这个数组存到新数组里;
但是不知道具体怎么实现,或者有没有其他更简洁的方法。

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 4k
4 个回答
arr.filter(item => item.state === 0)

数据: 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)
  }
  
  结果:
  

clipboard.png

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)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题