为了账号安全,请及时绑定邮箱和手机立即绑定

按字段值对数组进行分组并将分组值推送到数组中

按字段值对数组进行分组并将分组值推送到数组中

慕容森 2021-06-28 14:23:29
我有一个数组:let docArray = [     { documentID: 304717110, doublettenID: 111, done: true },  { documentID: 304717110, doublettenID: 222, done: true },  { documentID: 304717110, doublettenID: 333, done: true },  { documentID: 304717110, doublettenID: 444, done: true },  { documentID: 304717110, doublettenID: 555, done: true },  { documentID: 304717110, doublettenID: 666, done: true },  { documentID: 304862280, doublettenID: null, done: true },  { documentID: 304862281, doublettenID: null, done: true },  { documentID: 304933685, doublettenID: null, done: true },  { documentID: 304933871, doublettenID: null, done: true },  { documentID: 304933870, doublettenID: null, done: true },  { documentID: 304862282, doublettenID: null, done: true }   ]我想按 documentID 分组,并为每个不同的 documentID 创建一个对象,并将“doublettenID”字段值推送到每个对象的数组中。我怎样才能轻松做到这一点?
查看完整描述

3 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

这是一种方法,我不确定这是否是您需要的对象格式。


let docArray = [ 

    { documentID: 304717110, doublettenID: 111, done: true },

  { documentID: 304717110, doublettenID: 222, done: true },

  { documentID: 304717110, doublettenID: 333, done: true },

  { documentID: 304717110, doublettenID: 444, done: true },

  { documentID: 304717110, doublettenID: 555, done: true },

  { documentID: 304717110, doublettenID: 666, done: true },

  { documentID: 304862280, doublettenID: null, done: true },

  { documentID: 304862281, doublettenID: null, done: true },

  { documentID: 304933685, doublettenID: null, done: true },

  { documentID: 304933871, doublettenID: null, done: true },

  { documentID: 304933870, doublettenID: null, done: true },

  { documentID: 304862282, doublettenID: null, done: true } 

  ]

  

  var ids = []

  var res = []

  

  docArray.forEach(doc => {   

    if (!ids.includes(doc.documentID)) {

        doc.doublettenID = [doc.doublettenID]

        res.push(doc)

      ids.push(doc.documentID)

    } else {

        res.find(d => doc.documentID = d.documentID).doublettenID.push(doc.doublettenID)

    }

 })

  

console.log(res)


查看完整回答
反对 回复 2021-07-01
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

您可以遍历它并将documentID用作键,然后推送到一个单独的对象。


let docArray = [ 

  { documentID: 304717110, doublettenID: 111, done: true },

  { documentID: 304717110, doublettenID: 222, done: true },

  { documentID: 304717110, doublettenID: 333, done: true },

  { documentID: 304717110, doublettenID: 444, done: true },

  { documentID: 304717110, doublettenID: 555, done: true },

  { documentID: 304717110, doublettenID: 666, done: true },

  { documentID: 304862280, doublettenID: null, done: true },

  { documentID: 304862281, doublettenID: null, done: true },

  { documentID: 304933685, doublettenID: null, done: true },

  { documentID: 304933871, doublettenID: null, done: true },

  { documentID: 304933870, doublettenID: null, done: true },

  { documentID: 304862282, doublettenID: null, done: true } 

];

let groups = {};


docArray.forEach(entry => {

    if (!groups.hasOwnProperty(entry.documentID)) {

    groups[entry.documentID] = [];

    }


    groups[entry.documentID].push(entry.doublettenID);

});


console.log(groups);


查看完整回答
反对 回复 2021-07-01
  • 3 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信