Question

I expérimentais avec la méthode splice () dans jconsole

a = [1,2,3,4,5,6,7,8,9,10]
1,2,3,4,5,6,7,8,9,10

Ici, un est un simple tableau de 1 à 10.

b = ['a','b','c']
a,b,c

Et voici b

a.splice(0, 2, b)
1,2
a
a,b,c,3,4,5,6,7,8,9,10

Quand je passe la matrice B au troisième argument d'épissure, je veux dire « retirer les deux premiers arguments d'un index à partir de zéro, et les remplacer par le réseau de b ». Je ne l'ai jamais vu passer un tableau comme jonction () est troisième argument (tous les pages du guide que je lis parler sur une liste d'arguments), mais, eh bien, il semble faire l'affaire. [1,2] sont éliminés et maintenant est [a, b, c, 3,4,5,6,7,8,9,10]. Ensuite, je construis un autre tableau, que j'appelle c:

c = ['one','two','three']
one,two,three

Et essayer de faire la même chose:

a.splice(0, 2, c)
a,b,c,3
a
one,two,three,4,5,6,7,8,9,10

Cette fois, 4 (au lieu de 2) éléments sont supprimés [a, b, c, 3] et la matrice de c est ajouté au début. Quelqu'un sait pourquoi? Je suis sûr que la solution est triviale, mais je ne comprends pas en ce moment.

Était-ce utile?

La solution

Array.splice fait pas soutenir un tableau comme le troisième paramètre.
Référence: https://developer.mozilla.org/en/JavaScript/Reference / Global_Objects / Array / épissure

Utilisation Firebug (ou console de Chrome), on voit ce qui se passe vraiment:

a.splice(0, 2, b)
> [1, 2]
a
> [["a", "b", "c"], 3, 4, 5, 6, 7, 8, 9, 10]

problème ici est jconsole, qui utilise juste toString() pour imprimer les tableaux, mais Array.toString() n'imprime pas [].

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top