Entfernen argument von Argumenten in JavaScript
Ich wollte eine optionale boolean
parameter für einen Funktionsaufruf:
function test() {
if (typeof(arguments[0]) === 'boolean') {
//do some stuff
}
//rest of function
}
Möchte ich den rest der Funktion, sehen nur die arguments
array ohne die optionale boolean
parameter. Erste, was ich erkannte, ist die arguments
array ist kein array! Es scheint ein standard - Object
mit Eigenschaften von 0, 1, 2, etc. Also ich konnte es nicht tun:
function test() {
if (typeof(arguments[0]) === 'boolean') {
var optionalParameter = arguments.shift();
Bekomme ich eine Fehlermeldung, dass shift()
existiert nicht. So gibt es eine einfache Möglichkeit zu entfernen, die ein argument vom Anfang einer arguments
Objekt?
Nur eine Vermutung:
delete arguments[0]
?InformationsquelleAutor at. | 2013-11-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Arun hingewiesen
arguments
ist nicht ein arrayHaben Sie zu konvertieren, in ein array
var optionalParameter = [].shift.apply(arguments);
InformationsquelleAutor Clyde Lobo
Es ist nicht Phantasie, sondern die beste Lösung zu entfernen, das erste argument, ohne Nebenwirkungen, ohne Sie zu beenden, mit einem zusätzlichen argument nicht tun würde
shift
) würde wahrscheinlichBeispiel :
arguments.length === 4
. Ich denke, man sollte den job zu beenden, indem Sie es zuarguments.length-1
nach der for-Schleife.InformationsquelleAutor Denys Séguret