Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确编写此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 - Fatal编程技术网

如何正确编写此javascript过滤器参数函数? 功能终止(arr){ var args=[]; 对于(i=1;ie!=args[0]&&e!=args[1]&&e!=args[2]); } 终止([3,5,1,2,2],2,3,5);

如何正确编写此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

//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, 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;
  });
}