数组相同分组

2022-07-16 22:22:08
2024-05-19 06:01:24

将数组里相同的值放进一个一个小数组,然后再将这些小数组push进一个大的数组里

let arr = [0, 2, 3, 1, 3, 1, 1, 4, 5];
let obj = {};
let _newArr = [];

//forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数,通过对象的key判断,有key就push,没有就创建key
arr.forEach(item => (obj[item] ? obj[item].push(item) : (obj[item] = [item])));

//Object.keys 返回一个所有元素为字符串的数组,其元素来自于从给定的object表面可直接枚举属性。
Object.keys(obj).forEach(key => _newArr.push(obj[key]));

console.log(obj);
console.log(_newArr);
//直接使用Object.values也可以,逼格高
console.log(Object.values(obj));
{
  '0': [ 0 ],
  '1': [ 1, 1, 1 ],
  '2': [ 2 ],
  '3': [ 3, 3 ],
  '4': [ 4 ],
  '5': [ 5 ]
}
[ [ 0 ], [ 1, 1, 1 ], [ 2 ], [ 3, 3 ], [ 4 ], [ 5 ] ]
[ [ 0 ], [ 1, 1, 1 ], [ 2 ], [ 3, 3 ], [ 4 ], [ 5 ] ]
目录
暂无评论,欢迎留下你的评论

运营需要亿点资金维持,您的支持,是小白龙创作的动力!!!

昵称
留言
赞赏金额