如何正确编写此javascript过滤器参数函数? 功能终止(arr){ var args=[]; 对于(i=1;ie!=args[0]&&e!=args[1]&&e!=args[2]); } 终止([3,5,1,2,2],2,3,5);
//terminate([3,5,1,2,2],2,3,5)应该按照Jaromanda X的建议返回[1],如果您正在使用,那么这是最好的解决方案:如何正确编写此javascript过滤器参数函数? 功能终止(arr){ var args=[]; 对于(i=1;ie!=args[0]&&e!=args[1]&&e!=args[2]); } 终止([3,5,1,2,2],2,3,5);,javascript,filter,arguments,Javascript,Filter,Arguments,//terminate([3,5,1,2,2],2,3,5)应该按照Jaromanda X的建议返回[1],如果您正在使用,那么这是最好的解决方案: function terminate(arr) { var args =[]; for(i=1;i<arguments.length;i++){ } return arr.filter(e => e!=args[0]&& e!=args[1]&&e!=args[2]); } terminate([3
function terminate(arr) {
var args =[];
for(i=1;i<arguments.length;i++){
}
return arr.filter(e => e!=args[0]&& e!=args[1]&&e!=args[2]);
}
terminate([3, 5, 1, 2, 2], 2, 3, 5);
编辑:对不起<代码>数组.prototype.includes不是它的一部分,而是它的一部分。您需要使用args.indexOf(el)==-1
(如下一个示例)或~args.indexOf(el)
(使用a)作为过滤器谓词函数(如果使用)
对于这样的事情来说:
function terminate(arr, ...args) {
return arr.filter(el => !args.includes(el));
}
鉴于您已经在使用es2015<代码>函数终止(arr,…args)=>arr.filter(e=>!args.includes(e))代码>为什么要删除for循环的主体?顺便说一句,您的原始代码工作正常。顺便说一下,代码仍然工作正常,这些只是console.logs。我想做这部分=>
返回arr.filter(e=>e!=args[0]&&e!=args[1]&&e!=args[2])代码>带有一个循环,不必自己选择args数组位置。
function terminate(arr) {
var args = Array.prototype.slice.call(arguments, 1);
return arr.filter(function (el) {
return args.indexOf(el) === -1;
});
}