拼接方法没有删除正确的元素。 JavaScript的

时间:2016-10-09 08:16:18

标签: javascript arrays for-loop

我应该编写一个传递两个数组a和b的函数,并从' a'中删除元素。在' b'中找到。

这是我的代码

function array_diff(a, b) {
  for( var i = 0; i < b.length; i++) {
    for( var j = 0; j < a.length; j++) {
      if(a[j] === b[i]) {
        a.splice(j,1);
      }
    }
   }
   return a;
}

我传递了值array_diff([1,2,1,2,3,1],[1,2]);,我得到[2,3]作为答案。我使用以下代码检查了for循环:

function array_diff(a, b) {
  var unique = [];
  for( var i = 0; i < b.length; i++) {
    for( var j = 0; j < a.length; j++) {
      if(a[j] === b[i]) {
        unique.push(a[j]);
      }
    }
   }
   return unique;
}

然后我传递了相同的值,我得到了数组[1,1,1,2,2]。如果我的for循环识别出正确的值,那么为什么拼接方法不能删除确切的值?

需要你的帮助。

谢谢

0 个答案:

没有答案