js根据相同属性值将⼀个⼀维对象数组转为⼆维数组js根据相同属性值将⼀个⼀维对象数组转为⼆维数组
将⼀个⼀维对象数组,根据相同的属性值,转化成⼀个⼆维数组
// 待转换的⼀维数组
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.duce((res, item)=>{
de]? de].push(item): de]=[item];
return res;
},{}));
console.log(arrayTwo)
第⼆种⽅法
// 转换后的⼆维数组
function convert(arr){
var map1 ={};
while(arr.length){
let current = arr.pop();// 会影响原数组
de]= de]||[];
de].push(current);
}
return Object.keys(map1).map(key => map1[key]);
}
var arrayTwo =convert(arrayFirst)
console.log(arrayTwo)
顺便介绍⼀下reduce ⽅法 :
js 二维数组
reduce() ⽅法接收⼀个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为⼀个值。reduce() 对于空数组是不会执⾏回调函数的
参数描述
total必需。初始值, 或者计算结束后的返回值。
currentValue必需。当前元素
currentIndex可选。当前元素的索引arr可选。当前元素所属的数组对象initialValue可选。传递给函数的初始值

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。