javascript - 将数组添加到数组数组

标签 javascript arrays grouping

我确信这非常简单,我真的不想要一个完整的解决方案,而是在我学习的过程中指出正确的方向。
我有:

let randomArray = [1,2,4,591,392,391,2,5,10,2,1,1,1,20,20];
目标是让它看起来像这样,对项目进行分组:
[[1,1,1,1],[2,2,2],[10],[20,20],[391],[392],[591]]
我的以下代码安排好了,并且分组很好。我将温度推送到我的 Group 数组。但是当我重置我的“tempArray”以使其为下一个“组”准备好时,它也会从我的组中删除数据。因为有联系?我假设?也许?
最后剩下的只有最后一项。
我该如何阻止它这样做?
    // My SOlution
let randomArray = [1,2,4,591,392,391,2,5,10,2,1,1,1,20,20];
let tempArray = [];
let groupArray = [];

function cleanTheRoom (arr) {
    let ascendingArray = arr.sort(function(a,b) {
        return a - b;
    });
    tempArray.push(randomArray[0])
    for (let i = 1; i <= randomArray.length; i++) {
        if (randomArray[i] === tempArray[0]) {
            tempArray.push(randomArray[i])
        } else {
            groupArray.push(tempArray);
            tempArray = []
            tempArray.push(randomArray[i])
        }
    } console.log(groupArray)
}

cleanTheRoom(randomArray);

最佳答案

我拿了你的代码并改变了一些部分。

  • Array#sort 排序到位。无需分配给新变量。
  • 通过使用索引减一和索引处的值,从零开始迭代并直接查看数据。如果不相等,则找到一个新组。在这种情况下,只需将一个空数组分配给 groupArray并将小组推向结果。
    而不是使用相同的对象引用,而是通过将零分配给 length 来清空数组。 ,这种方法需要一个新的数组。
  • 将值推到 if 之外声明,因为它在 then 和 else 部分加倍。
  • 最后返回包含组的数组。

  • function cleanTheRoom(array) {
        let result = [];
        let groupArray;
    
        array.sort(function(a, b) {
            return a - b;
        });
    
        for (let i = 0; i < array.length; i++) {
            if (array[i - 1] !== array[i]) {
                groupArray = [];
                result.push(groupArray);
            }
            groupArray.push(array[i]);
        }
    
        return result;
    }
    
    let randomArray = [1, 2, 4, 591, 392, 391, 2, 5, 10, 2, 1, 1, 1, 20, 20];
    
    console.log(cleanTheRoom(randomArray));

    关于javascript - 将数组添加到数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63743758/

    相关文章:

    javascript - 如何在 Dynamics CRM 365 中插入潜在客户数据?

    javascript - IE CORS - 即使指定了 header ,访问控制允许 header 错误

    php - 使用sort函数进行排序和分组

    sql - 按顺序对记录进行分组 (SQL)

    python - 对 float 进行分组以查找最常见的一般数字

    javascript - 无法解决 Invalid Hook Call 错误(与 React Router 结合使用)

    javascript - 关于文字对象语法的限制

    java - 需要有关如何使用数组元素对数组进行排序的帮助

    arrays - 检查如何访问 Angular 5 HTML 中的数组元素

    javascript - 动态生成带有变量名和字符串的数组