我是新来的,在编写函数destroyer()
来从数组中删除多个值时需要一些帮助。
destroyer()函数将数组和其他数字作为参数传递。这个想法是从数组中删除数字。
例如。
destroyer([1, 2, 3, 1, 2, 3], 2, 3)
输出:
[1, 1]
destroyer(["tree", "hamburger", 53], "tree", 53)
输出:
["hamburger"]
destroyer([2, 3, 2, 3], 2, 3)
输出:
[]
注意:这些示例仅显示另外两个要删除的数字。但是功能destroyer()应该能够删除任意数量的值(即4、5或6个参数)。
但是,我的代码不会产生相同的结果。具体来说,使用console.log,我发现我的过滤器功能无法正常循环。
1)有人可以帮我调试吗?
2)编写此函数有更好的方法吗?
非常感谢你!!!
function destroyer() {
var args = Array.prototype.slice.call(arguments);
var itemToRemove = args.slice(1);
console.log(itemToRemove);
var newArr = args[0];
console.log(newArr);
function filterer(value) {
for (var i = 0; i < itemToRemove.length; i++) {
console.log(i);
console.log(itemToRemove[i]);
if (value != itemToRemove[i]) {
return value;
}
}
}
return newArr.filter(filterer);
}
最佳答案
您的filterer
函数可以更简单:
function filterer (value) {
return itemToRemove.indexOf(value) === -1;
}