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 № 1Perché 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");