你能解释一下这段代码吗?

时间:2016-05-08 17:39:05

标签: javascript

此片段来自FreeCodeCamp Seek And Destroy。我不明白传递给过滤器的功能。除此之外,所有其他步骤对我都有意义。请你把它打破给我?我很感激你的帮助。

 function destroyer(arr) {
        var args = Array.prototype.slice.call(arguments);
        args.splice(0, 1);
        return arr.filter(function(element) {
          return args.indexOf(element) === -1;
       });
    }

2 个答案:

答案 0 :(得分:0)

 function destroyer(arr) {
        //first the function get all the argument  pass in it
        var args = Array.prototype.slice.call(arguments);
        // it delete the first argument that is the name of the element called
        args.splice(0, 1);
        // then it return a filter function that is another function that return a boolean true the element is display false it is hide
        return arr.filter(function(element) {
         // this boolean match to the element is present as argument or not
          return args.indexOf(element) === -1;
       });
    }

答案 1 :(得分:0)

在return语句中,代码返回与给定数字element不匹配的项目/数字列表。 `filter接受一个返回true或false的回调。并过滤每个项目的回调调用,最后返回那些通过该条件的项目列表。

arr.filter(function(element) {
      return args.indexOf(element) === -1;
   });