Das Arguments-Objekt ist nur innerhalb eines Funktionskörpers verfügbar. Obwohl Sie das Arguments-Objekt wie ein Array indizieren können, ist es kein Array. Es hat keine anderen Array-Eigenschaften als die Länge.
// function arguments length 5
function properties(a,b,c,d,e){
var function_name= arguments.callee.name
var arguments_length= arguments.length;
var properties_length= properties.length;
var function_from= properties.caller.name;
console.log('I am the function name: '+ function_name);
console.log('I am the function length, I am function spacific: '+ properties_length);
console.log('I am the arguments length, I am context/excution spacific: '+ arguments_length);
console.log('I am being called From: '+ function_from );
}
// arguments 3
function parent(){
properties(1,2,3);
}
//arguments length 3 because execution spacific
parent();
Obwohl es wie ein Array indiziert werden kann, wie Sie in diesem Beispiel sehen können:
function add(){
var sum=0;
for(var i=0; i< arguments.length;i++){
sum = sum + arguments[i];
}
return sum;
}
console.log(add(1,2,3));
Das Arguments-Objekt ist jedoch kein Array und hat außer der Länge keine weiteren Eigenschaften.
Sie können das Argumente-Objekt in ein Array umwandeln und dann auf das Argumente-Objekt zugreifen.
Es gibt viele Möglichkeiten, auf das Argumente-Objekt innerhalb eines Funktionskörpers zuzugreifen, unter anderem:
- können Sie die Methode Array.prototoype.slice.call aufrufen.
Array.prototype.slice.call(argumente)
function giveMeArgs(arg1,arg2){
var args = Array.prototype.slice.call(arguments);
return args
}
console.log( giveMeArgs(1,2));
- können Sie das Array-Literal verwenden
[].slice.call(arguments).
function giveMeArgs(arg1,arg2){
var args = [].slice.call(arguments);
return args;
}
console.log( giveMeArgs(1,2) );
-
können Sie Rest ...
function giveMeArgs(...args){
return args;
}
console.log(giveMeArgs(1,2))
-
Sie können den Aufstrich [...]
function giveMeArgs(){
var args = [...arguments];
return args;
}
console.log(giveMeArgs(1,2));
-
können Sie Array.from() verwenden
function giveMeArgs(){
var args = Array.from(arguments);
return args;
}
console.log(giveMeArgs(1,2));
1 Stimmen
Eng verwandt: Wie funktioniert die Funktion Array.prototype.slice.call()?
0 Stimmen
Es gefällt mir nicht, dass alle Antworten auf diese Frage die Absicht erkennen lassen, eine Sortierung vorzunehmen, und
sort
hat alle Antworten durchdrungen, aber das Sortieren war nur ein Beispiel von etwas, das Sie könnte tun mit einer geeigneten Anordnung. Die Absicht war, das Array zu erhalten. Ich kann die Frage nicht einmal tadeln, weil es richtig "zum Beispiel" heißt. Dennoch hat jede Antwort beschlossen, "sortieren" in das Beispiel für die Umwandlung der Argumente in ein Array einzubauen - manchmal zu eng, indem man das Sortieren mit dem Erhalten eines Arrays von Argumenten verwechselt.