destroyer([1, 2, 3, 1, 2, 3], 2, 3)应该返回[1, 1],但是它返回[1, 2, 3, 1, 2, 3]。此代码有什么问题?

function destroyer(arr) {
  // Remove all the values
  var arg_num = arguments.length;

  var new_arr = arguments[0].filter(function(a){
    for (var i = 1; i < arg_num; i++){
      if (a === arguments[i]) a = false;
    }
    return a;
  });

  return new_arr;
}

destroyer([1, 2, 3, 1, 2, 3], 2, 3);

最佳答案

您可以改为使用difference库中的lodash函数。这是一个经过充分测试和广泛使用的实用程序库。

var _ = require('lodash');

var result = _.difference([1, 2, 3, 1, 2, 3], [2, 3])); // returns [1, 1]

07-24 09:51
查看更多