4 votes

Array.slice sur tableau avec un élément

Je suis vraiment confus par cela. Si je fais quelque chose comme ceci :
[1].slice(1)
il retourne un tableau vide (dans la console interactive de Chrome). Mais si je compare :
[1].slice(1) === []
c'est toujours faux. Donc ma question est, que retourne réellement [1].slice(1) ?

8voto

SLaks Points 391154

=== compare les objets par références.
Vous comparez deux objets de tableau différents qui sont tous deux vides.

Si vous voulez vérifier si un tableau est vide, vérifiez si .length === 0.

1voto

Oriol Points 20803

Ce n'est pas un problème de slice ou de ===.

Si vous faites [1]==[1], cela renvoie false.

C'est parce que à la fois == et === comparent les objets par référence

-1voto

Nick Points 8466

[] === [] retourne également false. [1].slice(1) retourne en fait []

-1voto

David Points 36241

Vous feriez mieux de vérifier la longueur :

[1].slice(1).length; // falsey

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X