/ / Funzione filtro Javascript in un ciclo For - javascript

Funzione filtro Javascript in un ciclo For - javascript

Sono stato in grado di completare l'operazione utilizzando .filter () e un ciclo For, ma non sono sicuro del motivo per cui non posso utilizzare il formato nel mio secondo esempio. Il primo esempio funziona bene.

function destroyer(arr) {

for(i=1; i < arguments.length; i++){
number = arguments[i];
arr = arr.filter(function(num){
return num !== number;
});
}
return arr;
}

destroyer([1, 2, 3, 1, 2, 3], 2, 3);

Ho cercato di sostituire il return num !== number; con return num!==arguments[i] ma il arguments[i] non sembra restituire il valore numerico.

risposte:

3 per risposta № 1

Perché arguments si riferisce a argomenti di funzioni differenti in quel punto.

Ogni volta che si inserisce una funzione, arguments farà riferimento al attualmente eseguendo argomenti di funzioni. Non avrebbe molto senso arguments fare riferimento solo agli argomenti delle funzioni di primo livello.

Esempio:

function a() {
console.log(arguments[0]);
var b = function() {
console.log(arguments[0]);
};
b("This is b");
}

a("This is a");