我对 javascript 很陌生,我试图构建这个我在挑战中发现的函数。我已经设法解决了这个问题,但我觉得这是一种非常复杂的做事方式,这里最快的方法是什么?
基本上answer(array)应该改变这个:
const array = [1,2,4,591,392,391,2,5,10,2,1,1,1,20,20];
进入这个:
newArray = [[1,1,1,1],[2,2,2], 4,5,10,[20,20], 391, 392,591];
到目前为止,这是我的代码:
const array = [1,2,4,591,392,391,2,5,10,2,1,1,1,20,20];
重复函数来自这篇关于查找重复值的帖子
看看这个单线。猜猜这就是你需要的。
请注意,这不是解决此问题的最有效方法 - 但猜测它是美丽的!
const array = [1,2,4,591,392,391,2,5,10,2,1,1,1,20,20];
const newArray = [...new Set(array)].sort((a, b) => a-b).map(e => new Array(array.filter( i => i === e).length).fill(e)).map(e => e.length === 1 ? e[0] : e);
console.log(newArray);这是如何工作的:
[...new Set(array)].sort((a, b) => a-b).map(e => new Array(array.filter( i => i === e).length);.fill(e).map(e => e.length === 1 ? e[0] : e)