javascript - 将具有多个索引的项目分组到子数组中

标签 javascript

尝试创建一个函数,将数组中的重复项分组到子数组中,并将字符串(如果有)分组到另一个子数组中。

我尝试使用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/

相关文章:

javascript - 如何使用 javascript/Cordova 在 Windows 平板电脑 (SurfacePro) 上启用相机

javascript - 输入字段为空时阻止提交表单

javascript - 在nodejs中关闭浏览器时删除 session

javascript - Firebase 范围查询

javascript - D3plus未定义

javascript - 为什么我没有从带有 Select 的 onChange 中获取值?

javascript - jquery中的多个元素选择

javascript - 使用 Fabric js 使背景图像适合 Canvas 大小

javascript - 如何进行 AJAX 调用,以便仅在单击特定类中包含的链接并包含父元素的 "id"时触发?

javascript - 添加此 Twitter 关注按钮自定义