将一个一维对象数组,根据相同的属性值,转化成一个二维数组
// 待转换的一维数组
var arrayFirst = [{
code: 1,
datas: 'a网吧'
},
{
code: 1,
datas: 'b网吧'
}, {
code: 2,
datas: 'a酒店'
},
{
code: 2,
datas: 'b酒店'
},
{
code: 3,
datas: 'a学校'
}, {
code: 3,
datas: 'b学校'
},
{
code: 3,
datas: 'c学校'
}
]
按照相同的code值转换成二维数组
// 转换后的二维数组
[
[{code: 1, datas: "a网吧"},{code: 1, datas: "b网吧"}],
[{code: 2, datas: "a酒店"},{code: 2, datas: "b酒店"}],
[{code: 3, datas: "a学校"},{code: 3, datas: "b学校"},
{code: 3, datas:"c学校"}]]
es6的方法
使用es6的方法
Object.values() //返回 值 数组
返回数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值
// 转换后的二维数组
var arrayTwo = Object.values(arrayFirst.reduce((res, item) => {
res[item.code] ? res[item.code].push(item) : res[item.code] = [item];
return res;
}, {}));
console.log(arrayTwo)