首页 > 解决方案 > 比较两个数组在javascript中无法正常工作

问题描述

正如标题所说,我正在尝试比较两个数组的内容。第二个数组可以包含多个值,并且不一定在第一个数组中生成相同的值。第二个数组由一堆字符串值组成。我的应用程序如下工作。每次我单击一个按钮时,它都会生成一个字符串元素数组。在将它推送到第二个数组之前,我想检查这个数组是否包含所有元素(这是它失败的地方)。如果是这样,我想从第二个数组中删除以下元素。第二个数组必须包含第一个数组中的所有元素才能将其删除。

如果不是,则将元素推送到第二个数组。我知道按钮的代码和按钮在单击时会生成一些随机字符串,所以我不会在我的问题中包含这个功能。到目前为止,这是我的代码。

       compare(array1, array2) {
                return array1.every(i => array2.includes(i));
       }

       check(array1, array2) {
            if (compare(array1, array2)) {
                this.remove(array1);
            } else {
                this.add(array1, array2);
            }
        }

       add(array1, array2) {
            for (let i = 0; i < array1.length; i++) {
                array2.push(array1[i]);
            }
        }

        remove(array1, array2) {
            for (let i = 0; i < array1.length; i++) {
                for (let j = 0; j < array2.length; j++) {
                    if (array1[i] === (array2[j])) {
                        array2.splice(elements[i], 1);
                    }
                }
            }
        }

你看到任何明显的错误吗?有时它可以工作,但是当第二个数组很大时它不起作用。

标签: javascript

解决方案


推荐阅读