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

js根据条件将一个一维对象数组转为二维数组

js根据条件将一个一维对象数组转为二维数组

Helenr 2018-07-22 11:24:09
请问下,如何把下面的数组arrayFirst,根据相同的index转成arrayTwovar arrayFirst = [{    index: 1,    datas: han }, {    index: 1,    datas: hu }, {    index: 2,    datas: zhang }, {    index: 2,    datas: wang } ] var arrayTwo = [[{    index: 1,    datas: han }, {    index: 1,    datas: hu }], [{    index: 2,    datas: zhang }, {    index: 2,    datas: wang }]]看着很简单,但是确不知道怎么做才好
查看完整描述

2 回答

?
达令说

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

// 创建映射var map = arrayFirst.reduce((p, c) => [p[c.index] = p[c.index] || [],
                                       p[c.index].push(c), p][2], {})// 获取映射分类下的数组                                       var result = Object.keys(map).map(i => map[i])


查看完整回答
1 反对 回复 2018-07-29
?
白板的微信

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

var arrayTwo = [];var indexGroup = arrayFirst.map(v => v.index);var flag = [];for(var i = 0; i<indexGroup.length; i++) {    var index = indexGroup[i];    if(flag[index]) continue;
    flag[index] = 1;    var groupArray = arrayFirst.filter(v => v.index === index);
    arrayTwo.push(groupArray);
}


查看完整回答
反对 回复 2018-07-29
  • 2 回答
  • 0 关注
  • 2227 浏览
慕课专栏
更多

添加回答

举报

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