请问下,如何把下面的数组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])
白板的微信
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); }
添加回答
举报
0/150
提交
取消