正如标题所述,我正在尝试比较两个数组的内容。第二个数组可以包含多个值,并且不一定要在第一个数组中生成相同的值。第二个数组由一堆字符串值组成。我的应用程序如下工作。每次我单击按钮时,都会生成一个字符串元素数组。在将其推送到第二个数组之前,我想检查该数组是否包含所有元素(这是失败的地方)。如果是这样,我想从第二个数组中删除以下元素。第二个数组必须包含第一个数组中的所有元素,才能将其删除。
如果没有,则将元素推入第二个数组。我知道该按钮的代码以及该按钮在单击时会生成一些随机字符串,因此我不会在此问题中包含此功能。到目前为止,这是我的代码。
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);
}
}
}
}
您是否看到任何明显的错误?有时它可以工作,但是当第二个数组很大时,它就不能工作。