Comment obtenez-vous le premier élément d'un tableau comme celui-ci:
var ary = ['first', 'second', 'third', 'fourth', 'fifth'];
J'ai essayé ceci:
alert($(ary).first());
Mais ça reviendrait [object Object]
. J'ai donc besoin d'obtenir le premier élément du tableau qui devrait être l'élément 'first'
.
javascript
jquery
arrays
MacMac
la source
la source
Réponses:
comme ça
la source
var a = []; a[7] = 'foo'; alert(a[0]);
Pourquoi jQuery-ifiez-vous un tableau JavaScript vanille? Utilisez JavaScript standard!
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array
Aussi,
Source , gracieuseté de bobince
la source
Certaines des façons ci-dessous pour différentes circonstances.
Dans la plupart des cas normaux, le moyen le plus simple d'accéder au premier élément est de
mais cela vous oblige à vérifier si [0] existe réellement.
Il y a des cas réels où vous ne vous souciez pas du tableau d'origine et ne voulez pas vérifier si l'index existe, vous voulez simplement obtenir le premier élément ou en ligne non défini.
Dans ce cas, vous pouvez utiliser la méthode shift () pour obtenir le premier élément, mais veillez à ce que cette méthode modifie le tableau d'origine (supprime le premier élément et le renvoie). Par conséquent, la longueur d'un tableau est réduite de un. Cette méthode peut être utilisée dans les cas en ligne où vous avez juste besoin d'obtenir le premier élément, mais vous ne vous souciez pas du tableau d'origine.
La chose importante à savoir est que les deux ci-dessus ne sont une option que si votre tableau commence par un index [0].
Il y a des cas où le premier élément a été supprimé, par exemple avec, supprimez votre tableau [0] en laissant votre tableau avec des "trous". L'élément à [0] n'est maintenant tout simplement pas défini, mais vous voulez obtenir le premier élément "existant". J'ai vu de nombreux cas réels de cela.
Donc, en supposant que nous n'avons aucune connaissance du tableau et de la première clé (ou nous savons qu'il y a des trous), nous pouvons toujours obtenir le premier élément.
Vous pouvez utiliser find () pour obtenir le premier élément.
L'avantage de find () est son efficacité car il quitte la boucle lorsque la première valeur satisfaisant la condition est atteinte (plus d'informations à ce sujet ci-dessous). (Vous pouvez également personnaliser la condition pour exclure les valeurs nulles ou autres valeurs vides)
Je voudrais également inclure filter () ici comme option pour «fixer» le tableau dans la copie, puis obtenir le premier élément tout en gardant le tableau d'origine intact (non modifié).
Une autre raison d'inclure filter () ici est qu'il existait avant find () et que de nombreux programmeurs l'ont déjà utilisé (c'est ES5 contre find () étant ES6).
Avertissement que filter () n'est pas vraiment un moyen efficace (filter () parcourt tous les éléments) et crée un autre tableau. Il est bon de l'utiliser sur de petites baies, car l'impact sur les performances serait marginal, plus proche de l'utilisation de forEach, par exemple.
(Je vois que certaines personnes suggèrent d'utiliser for ... in loop pour obtenir le premier élément, mais je déconseille cette méthode car ... in ne doit pas être utilisé pour itérer sur un tableau où l'ordre des index est important car il ne le fait pas '' ne garantissez pas la commande, bien que vous puissiez affirmer que les navigateurs respectent la plupart du temps la commande.Par ailleurs, forEach ne résout pas le problème comme beaucoup le suggèrent, car vous ne pouvez pas le casser et il fonctionnera à travers tous les éléments. boucle et en vérifiant clé / valeur
Find () et filter () garantissent l'ordre des éléments, ils sont donc sûrs à utiliser comme ci-dessus.
la source
yourArray.map(n=>n).shift()
, le premier élément sera retourné sans modifier l'original ... je ne sais pas si c'est la meilleure façon, mais si vous enchaînez un tableau avec .map (). Filter (). Some (). Shift () ça va .. sinon j'utiliseraisyourArray[0]
Utilisation de la déstructuration ES6
C'est la même chose que
la source
L'élément d'index 0 peut ne pas exister si le premier élément a été supprimé:
Meilleure façon d'obtenir le premier élément sans jQuery:
la source
Si vous souhaitez préserver la lisibilité, vous pouvez toujours ajouter une première fonction à
Array.protoype
:Vous pourrez alors facilement récupérer le premier élément:
la source
.first()
mieux de taper que de faire[0]
?1
.first
est sans ambiguïté dans ce cas.Vous pouvez simplement utiliser
find()
:Ou si vous voulez le premier élément même s'il est faux :
Aller plus loin:
Si vous vous souciez de la lisibilité mais ne voulez pas vous fier aux incidences numériques, vous pouvez ajouter une
first()
fonction àArray.protoype
en la définissant avecObject.defineProperty()
ce qui atténue les pièges de la modification directe du prototype d'objet Array intégré ( expliqué ici ).Les performances sont plutôt bonnes (
find()
s'arrête après le premier élément) mais elles ne sont pas parfaites ou universellement accessibles (ES6 uniquement). Pour plus d'informations, lisez la réponse @Selays .Ensuite, pour récupérer le premier élément, vous pouvez le faire:
Extrait pour le voir en action:
la source
find()
?find()
fait depuis longtemps partie de la langue. C'est la raison pour laquelle l'extrait ci-dessus fonctionne.first()
méthode de la langueSi votre tableau n'est pas garanti d'être rempli à partir de l'index zéro, vous pouvez utiliser
Array.prototype.find()
:la source
!!element
car cela sautera les valeurs de falsification. Je recommanderais d'utiliserfind()
de cette manière:sparse.find((_, index, array) => index in array);
puisque "find" retourne le premier élément qui correspond au filtre &&
!!e
correspond à n'importe quel élément.Remarque Cela ne fonctionne que lorsque le premier élément est pas un « Falsy »:
null
,false
,NaN
,""
,0
,undefined
la source
array.find(() => true);
? Cela vous permet également de faire[false].find(() => true)
..find(value => true)
comme prévu… mais honnêtement, si vous voulez un code plus propre et pour conserver la frappe en tapuscrit, utilisez la déstructuration .Essayez
alert(ary[0]);
.la source
Ce n'est que si vous utilisez underscore.js ( http://underscorejs.org/ ) que vous pouvez faire:
la source
Je connais des gens qui viennent d'autres langages vers JavaScript, à la recherche de quelque chose comme
head()
oufirst()
pour obtenir le premier élément d'un tableau, mais comment faire?Imaginez que vous ayez le tableau ci-dessous:
En JavaScript, vous pouvez simplement faire:
ou une façon plus propre et plus récente est:
Mais vous pouvez aussi simplement écrire une fonction comme ...
Si vous utilisez un trait de soulignement, il existe une liste de fonctions faisant la même chose que vous recherchez:
la source
Méthode qui fonctionne avec les tableaux , et elle fonctionne aussi avec les objets (attention, les objets n'ont pas d'ordre garanti!).
Je préfère le plus cette méthode, car le tableau d'origine n'est pas modifié.
la source
Dans ES2015 et supérieur, à l'aide de la déstructuration des baies:
la source
Un autre pour ceux qui ne s'intéressent qu'aux éléments véridiques
la source
Recherchez le premier élément d'un tableau à l'aide d'un filtre:
En dactylographie:
En clair javascript:
Et de même, indexOf:
En dactylographie:
En clair javascript:
la source
Lorsqu'il y a plusieurs correspondances, .first () de JQuery est utilisé pour récupérer le premier élément DOM qui correspondait au sélecteur css donné à jquery.
Vous n'avez pas besoin de jQuery pour manipuler les tableaux javascript.
la source
Pourquoi ne pas tenir compte des heures où votre tableau peut être vide?
la source
Utilisez simplement
ary.slice(0,1).pop();
Dans
array.slice (START, END) .pop ();
la source
ary[0]
?Vous pouvez également utiliser .get (0):
Pour obtenir le premier élément du tableau.
la source
Utilisez-le pour diviser le caractère en javascript.
la source
Les exemples précédents fonctionnent bien lorsque l'index du tableau commence à zéro. La réponse de thomax ne reposait pas sur un indice commençant à zéro, mais sur
Array.prototype.find
lequel je n'avais pas accès. La solution suivante utilisant jQuery $ .each a bien fonctionné dans mon cas.la source
Vous pouvez le faire par lodash
_.head
si facilement.la source
arr[0]
que vous pouvez voir ici, c'est pourquoi je déconseille fortement d' utiliser une gigantesque bibliothèque comme lodash pour une si petite tâche.la source
@NicoLwk Vous devez supprimer les éléments avec une épissure, qui feront reculer votre tableau. Alors:
la source
Déclarez un prototype pour obtenir le premier élément du tableau comme:
Ensuite, utilisez-le comme:
Ou simplement (:
la source
Si vous enchaînez des fonctions de vue au tableau, par exemple
array.map(i => i+1).filter(i => i > 3)
Et voulez le premier élément après ces fonctions, vous pouvez simplement ajouter un
.shift()
il ne modifie pas l'originalarray
, c'est une meilleure façon alorsarray.map(i => i+1).filter(=> i > 3)[0]
Si vous voulez le premier élément d'un tableau sans modifier l'original, vous pouvez utiliser
array[0]
ouarray.map(n=>n).shift()
(sans la carte, vous modifierez l'original. Dans ce cas, je suggère la..[0]
version.la source
Faites n'importe quel tableau d'objets (
req
), puis faites simplementObject.keys(req)[0]
pour choisir la première clé du tableau d'objets.la source
La réponse de @thomax est plutôt bonne, mais échouera si le premier élément du tableau est faux ou faux-y (0, chaîne vide, etc.). Mieux vaut simplement retourner vrai pour tout ce qui n'est pas défini:
la source
ES6 facile:
la source
[false, 0, null, undefined, '', 'last'].find(v => v)
a.find(value => true)
ne rejettera aucune valeur. Pourtant, je ne recommande pas d'utiliser find pour obtenir le premier élément.