2016-05-08 14 views
-3

Dieses Snippet stammt von FreeCodeCamp Seek And Destroy. Ich verstehe die in den Filter übergebene Funktion nicht. Alle anderen Schritte ergeben für mich zusätzlich Sinn. Würdest du mir das bitte sagen? Ich würde die Hilfe zu schätzen wissen.Erklären Sie mir diesen Code?

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

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter – Claies

+0

Was Sie nicht über sie verstehen? Eine Rücksendeaussage? Der Operator '===? Die 'indexOf' Methode? Die 'args' Variable? – Quentin

+0

Ich verstehe die Rückgabeanweisung im Filter nicht. – JorgeEstaAqui

Antwort

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; 
     }); 
    } 
0

In return-Anweisung, es Code, um eine Liste der Elemente/Zahlen zurückkehren, die Zahl element gegeben stimmen nicht überein. `Filter nimmt einen Callback, der wahr oder falsch zurückgibt. und filter ruft den Rückruf für jedes Element auf und gibt schließlich eine Liste der Elemente zurück, die diese Bedingung bestehen.

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