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]