La suppression d'un argument à partir des arguments en JavaScript
Je voulais avoir une option de boolean
paramètre à l'appel de la fonction:
function test() {
if (typeof(arguments[0]) === 'boolean') {
//do some stuff
}
//rest of function
}
Je veux le reste de la fonction pour voir uniquement les arguments
tableau sans l'option boolean
paramètre. Première chose que j'ai réalisé, c'est l' arguments
tableau n'est pas un tableau! Il semble être un standard Object
avec les propriétés de 0, 1, 2, etc. Donc, je ne pouvais pas le faire:
function test() {
if (typeof(arguments[0]) === 'boolean') {
var optionalParameter = arguments.shift();
J'obtiens une erreur que shift()
n'existe pas. Donc, il y a un moyen facile de supprimer un argument depuis le début de l' arguments
objet?
Juste une supposition:
delete arguments[0]
?OriginalL'auteur at. | 2013-11-11
Vous devez vous connecter pour publier un commentaire.
Comme Arun a souligné
arguments
n'est pas un tableauVous devez la convertir en dans un tableau
var optionalParameter = [].shift.apply(arguments);
OriginalL'auteur Clyde Lobo
Ce n'est pas de fantaisie, mais la meilleure solution pour supprimer le premier argument sans effet secondaire (sans se terminant par un argument supplémentaire comme le ferait
shift
) serait probablementExemple :
arguments.length === 4
. Je pense que vous devriez finir le travail par la mise àarguments.length-1
après la boucle for.OriginalL'auteur Denys Séguret