【发布时间】:2018-07-05 12:53:38
【问题描述】:
在下面的函数中,我试图得到一个类似于这样的输出:
[[1,1,1,1],[2,2,2], 4,5,10,[20,20], 391, 392,591]。
我可以看到我嵌入的问题是我总是添加临时数组并推送到函数返回,因此,除了每个函数中的最后一个数字之外的所有单个数字都被也与数组对象一起推入目标数组。
我觉得我需要进一步的条件检查,但对于我的一生,我无法想出可行的解决方案。
任何建议将不胜感激。
const sortme = (unsortedArr)=> {
let tempArr = [];
let outputArr = [];
const reorderedArr = unsortedArr.sort((a,b) => a-b);
reorderedArr.forEach((number, i) => {
if ((i === 0) || (reorderedArr[i] === reorderedArr[i-1])) {
tempArr.push(number);
}
else {
outputArr.push(tempArr);
tempArr = [];
tempArr.push(number);
}
})
outputArr.push(tempArr[0]);
return outputArr;
}
const unsortedArr = [1,2,4,591,392,391,2,5,10,2,1,1,1,20,20];
sortme(unsortedArr);
【问题讨论】:
标签: javascript arrays higher-order-functions