尝试创建一个函数,将数组中的重复项分组到子数组中,并将字符串(如果有)分组到另一个子数组中。
我尝试使用findIndex方法来定义i,然后迭代它并使用reduce插入[]
let roughArray = [1, 2, 4, 591, 392, 391, 2, 5, 10, 2, 1, 1, 1, 20, 20];
function sortArray() {
roughArray.map(num => {
if (num[i] > 1) {
roughArray.reduce((acc, num) => {
return acc.concat(num)
}, [])
}
})
sortArray()
我也尝试过:
const cleanArray = roughArray.reduce((acc, num) => {
let i = acc.findIndex(num);
if (i) {
return acc.concat(num);
}
}, [])
cleanArray();
我希望在只有数字的情况下会出现这种情况
[[1,1,1,1],[2,2,2], 4,5,10,[20,20], 391, 392,591]
在某些包含的字符串的情况下:
[[1,2], ["2", "3"]]
最佳答案
let roughArray = [1, 2, 4, 591, 392, 391, 2, 5, 10, 2, 1, 1, 1, 20, 20];
let results = {}
roughArray.map( num => {
if(results[num])
results[num].push(num)
else
results[num] = [num]
})
let bigArray = []
bigArray = Object.values(results)
let final_result = []
bigArray.map(array => {
if(array.length == 1)
final_result.push(array[0])
else
final_result.push(array)
})
console.log(final_result)
关于javascript - 将具有多个索引的项目分组到子数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57431690/