我一直在尝试理解这个功能很长一段时间,但它对我来说没有意义。该函数的目标是删除与其他参数号匹配的参数数组中的任何数字。Javascript:请帮我理解这个功能
为什么需要对该数组进行切片以使其正常工作?
args.splice(0,1)是多余的吗?我删除它,没有任何改变。
好像过滤功能做大量的工作,但我看不出它是如何筛选的数字...
function destroyer(arr) {
var args = Array.prototype.slice.call(arguments);
args.splice(0, 1);
return arr.filter(function(element) {
return args.indexOf(element) === -1;
});
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
@Rayon,它是[1,1] –
是的,输出是没有额外参数的传递数组,如OP所述。在这种情况下,没有2和3. –
我花了一段时间才得到你的问题。原因很简单:来自'args'的第一个参数总是被忽略,因为'objects'是相等的('==='用于' indexOf')只有当他们被引用.... – Rayon