javascript - 当数组与另一个数组匹配时清空数组

标签 javascript arrays

所以,我正在尝试匹配 2 个不同的数组。如果相同的单元格匹配,我想使用 .slice 方法从一个数组中删除该单元格。

编辑:如果 array2 包含匹配的数字,我想做的是从 array1 中删除一个数字。该代码现在的工作方式是仅删除 1 个条目。我希望从第一个数组中删除所有条目。

array1 = [1, 2, 4, 5, 7, 10];
array2 = [1,2,4,5,6,7,8];

var misc = function deleteValues(array, arayy) {
  for(var i = 0; i < array.length; i++) {
    if ( arayy[i] == array[i]) {
      array.splice(i, 1);
    }
  }
  return array;
};

我尝试运行它,在控制台日志下,array1 没有变化。拼接方法似乎没有去除任何细胞。我搜索了 SE,但找不到任何可以帮助我的内容。

最佳答案

jsFiddle Demo

问题是您在迭代时修改了其中一个数组,但仍然使用相同的索引。最终结果是,在第一次删除后,您最终会相互比较错误的索引。使用两个索引,在删除一项时让一个索引向下偏移,并让另一个简单地迭代。

var misc = function deleteValues(array, arayy) {
    for(var i = 0, j = 0; i < array.length; i++, j++) {
        if ( arayy[j] == array[i]) {
            array.splice(i--, 1);
        }
    }
    return array;
};

关于javascript - 当数组与另一个数组匹配时清空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32341562/

相关文章:

arrays - ArraySort 回调未按正确顺序对我的数组进行排序

javascript - 在 javascript 中从 JSON 文档读取多行字符串

javascript - 如何使用 jquery-mobile 添加主页按钮?

javascript - 在 p5js 中使用通过 HTML DOM 文件 uploader 上传的图片

javascript - AngularJS:未捕获错误:[$rootScope:infdig] 达到 10 次 $digest() 迭代

c - 获取空初始化字符串数组的第一个值

c++ - 用以下方式总结数组元素的有效方法是什么?

iphone - 获取数组中对象的索引以在其他数组中查找对应的对象

javascript - TinyMCE 错误的按钮名称

arrays - perl中如何以数组形式保存数据?