手机登录/注册
X
登录
将数组里相同的值放进一个一个小数组,然后再将这些小数组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 ] ]