web-dev-qa-db-fra.com

Obtenir le premier élément du tableau

Comment obtenez-vous le premier élément d'un tableau:

var ary = ['first', 'second', 'third', 'fourth', 'fifth'];

J'ai essayé ceci:

alert($(ary).first());

Mais il renverrait [object Object]

Donc, je dois obtenir le premier élément du tableau qui devrait être l'élément first.

143
MacMac

comme ça

alert(ary[0])
248
John Hartsock

Pourquoi êtes-vous jQuery-ifying un tableau JavaScript Vanilla? Utilisez JavaScript standard!

var ary = ['first', 'second', 'third', 'fourth', 'fifth'];
alert(ary[0]);

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array

Également,  needs more jQuery

Source , avec l'aimable autorisation de bobince

183
Matt Ball

L'élément d'indice 0 peut ne pas exister si le premier élément a été supprimé
Prouvez-le dans la console de votre navigateur:

var a=['a','b','c'];
delete a[0];
for(var i in a){console.log(i+' '+a[i]);}

Meilleure façon d'obtenir le premier élément sans jQuery:

function first(p){for(var i in p)return p[i];}
first(a);
46
NicoLwk

Si vous voulez conserver la lisibilité, vous pouvez toujours ajouter une première fonction au Array.protoype:

Array.prototype.first = function () {
    return this[0];
};

Ensuite, vous pouvez facilement récupérer le premier élément:

[1, 2, 3].first();
> 1
42
eliocs

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 où vous avez juste besoin d’obtenir le premier élément, mais vous ne vous souciez pas du tableau d’origine. 

yourArray.shift()
40
Selay

Utilisation de la déstructuration ES6

let [first] = [1,2,3];

Quel est le même que

let first = [1,2,3][0];
23
Flavien Volken

Si la constitution de votre tableau à partir de l'index zéro n'est pas garantie, vous pouvez utiliser Array.prototype.find():

var elements = []
elements[1] = 'foo'
elements[2] = 'bar'

var first = function(element) { return !!element }    
var gotcha = elements.find(first)

console.log(a[0]) // undefined
console.log(gotcha) // 'foo'
17
thomax
array.find(e => !!e);  // return the first element 

puisque "trouver" retourne le premier élément qui correspond au filtre && !!e correspond à n'importe quel élément.

Remarque Ceci fonctionne uniquement lorsque le premier élément n'est pas un "Falsy": null, false, NaN, "", 0, undefined

11
Abdennour TOUMI

Essayez alert(ary[0]);.

9
thejh

Seulement si vous utilisez underscore.js ( http://underscorejs.org/ ), vous pouvez faire:

_.first(your_array);
7
pastullo

Méthode qui fonctionne avec les tableaux}, et fonctionne avec les objets aussi (attention, les objets n'ont pas d'ordre garanti!).

Je préfère cette méthode car le tableau d'origine n'est pas modifié.

// In case of array
var arr = [];
arr[3] = 'first';
arr[7] = 'last';
var firstElement;
for(var i in arr){
    firstElement = arr[i];
    break;
}
console.log(firstElement);  // "first"

// In case of object
var obj = {
    first: 'first',
    last: 'last',
};

var firstElement;

for(var i in obj){
    firstElement = obj[i];
    break;
}

console.log(firstElement) // First;
5
Mārtiņš Briedis

Lorsqu'il existe plusieurs correspondances, la méthode .first () de JQuery est utilisée pour extraire le premier élément DOM correspondant au sélecteur css attribué à jquery. 

Vous n'avez pas besoin de jQuery pour manipuler des tableaux javascript.

4
letronje

Recherchez le premier élément d'un tableau à l'aide d'un filtre:

function first<T>(arr: T[], filter: (v: T) => boolean): T {
    let result: T;
    return arr.some(v => { result = v; return filter(v); }) ? result : undefined;
}

En clair javascript:

function first(arr, filter) {
    var result;
    return arr.some(function (v) { result = v; return filter(v); }) ? result : undefined;
}

Et pareillement, indexOf:

Dans TypeScript:

function indexOf<T>(arr: T[], filter: (v: T) => boolean): number {
    let result: number;
    return arr.some((v, i) => { result = i; return filter(v); }) ? result : undefined;
}

En clair javascript:

function indexOf(arr, filter) {
    var result;
    return arr.some(function (v, i) { result = i; return filter(v); }) ? result : undefined;
}
4
Corey Alix

Vous pouvez aussi utiliser .get (0):

alert($(ary).first().get(0));

Pour obtenir le premier élément du tableau.

2
Michael Pawlowsky

Je sais que les personnes qui viennent d'autres langages en JavaScript cherchent quelque chose comme head() ou first() pour obtenir le premier élément d'un tableau, mais comment pouvez-vous le faire?

Imaginez que vous ayez le tableau ci-dessous:

const arr = [1, 2, 3, 4, 5];

En JavaScript, vous pouvez simplement faire:

const first = arr[0];

ou une façon plus propre, la nouvelle manière est:

const [first] = arr;

Mais vous pouvez aussi simplement écrire une fonction comme ...

function _first(arr) {
   if(!Array.isArray(arr)) return;
   return arr[0];
}

Si vous utilisez un trait de soulignement, il existe une liste de fonctions faisant la même chose que vous recherchez:

_.first 

_.head

_.take
2
Alireza

Dans ES2015 et versions ultérieures, à l'aide de la déstructuration de tableau:

const arr = [42, 555, 666, 777]
const [first] = arr
console.log(first)

2
Vik

Vous pouvez juste faire:

let first = array.find(() => true);

Ou si vous ne vous souciez que d'éléments de vérité:

let first = array.find(e => e);

Se soucier de lisibilité while ne pas compter sur des incidences numériques J'ai ajouté une fonction first()- à Array.protoype en le définissant avec Object​.define​Property() que atténue les pièges de modification du prototype d'objet Array intégré directement ( expliqué ici ).

Les performances sont plutôt bonnes (find() s'arrête après le premier élément), mais elles ne sont ni parfaites ni universellement accessibles (ES6 uniquement). Pour plus d'informations, lisez @Selays answer .

Object.defineProperty(Array.prototype, 'first', {
  value() {
    return this.find(() => true);     // or this.find(e => e)
  }
});

Ensuite, pour récupérer le premier élément, vous pouvez faire:

let array = ['a', 'b', 'c'];
array.first();

> 'a'

Snippet pour le voir en action:

Object.defineProperty(Array.prototype, 'first', {
  value() {
    return this.find(() => true);
  }
});

console.log( ['a', 'b', 'c'].first() );
2
MiXT4PE

Les exemples précédents fonctionnent bien lorsque l'index de tableau commence à zéro. La réponse de thomax ne s'est pas appuyée sur l'indice commençant à zéro, mais sur Array.prototype.find auquel je n'avais pas accès La solution suivante utilisant jQuery $ .each a bien fonctionné dans mon cas.

let haystack = {100: 'first', 150: 'second'},
    found = null;

$.each(haystack, function( index, value ) {
    found = value;  // Save the first array element for later.
    return false;  // Immediately stop the $.each loop after the first array element.
});

console.log(found); // Prints 'first'.
1
Matthew

Pourquoi ne pas comptabiliser les fois où votre tableau pourrait être vide?

var ary = ['first', 'second', 'third', 'fourth', 'fifth'];
first = (array) => array.length ? array[0] : 'no items';
first(ary)
// output: first

var ary = [];
first(ary)
// output: no items
1
NathanQ

Vous pouvez le faire en lodash_.head si facilement.

var arr = ['first', 'second', 'third', 'fourth', 'fifth'];
console.log(_.head(arr));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

1
Yi-Ting Liu

Un autre pour ceux qui ne s'intéressent qu'aux éléments véridiques

ary.find(Boolean);
1
Vinnie
var ary = ['first', 'second', 'third', 'fourth', 'fifth'];

console.log(Object.keys(ary)[0]);

Créez n'importe quel tableau Object (req), puis faites simplement Object.keys(req)[0] pour choisir la première clé du tableau Object.

0
Anuga

Utilisez cette option pour diviser un caractère en javascript.

var str = "boy, girl, dog, cat";
var arr = str.split(",");
var fst = arr.splice(0,1).join("");
var rest = arr.join(",");
0
Mohit Singh

Déclarez un prototype pour obtenirfirst arrayelement comme:

Array.prototype.first = function () {
   return this[0];
};

Ensuite, utilisez-le comme:

var array = [0, 1, 2, 3];
var first = array.first();
var _first = [0, 1, 2, 3].first();

Ou simplement (:

first = array[0];
0
ozhanli
var ary = ['first', 'second', 'third', 'fourth', 'fifth'];
alert(Object.values(ary)[0]);
0
Merak Marey

Il suffit d'utiliser ary.slice(0,1).pop();

Dans

var ary = ['first', 'second', 'third', 'fourth', 'fifth'];

console.log("1º "+ary.slice(0,1).pop());
console.log("2º "+ary.slice(0,2).pop());
console.log("3º "+ary.slice(0,3).pop());
console.log("4º "+ary.slice(0,4).pop());
console.log("5º "+ary.slice(0,5).pop());
console.log("Last "+ary.slice(-1).pop());

array.slice (START, END) .pop ();

0
Guilherme HS

La réponse de @thomax est assez bonne, mais échouera si le premier élément du tableau est false ou false-y (0, chaîne vide, etc.). Mieux vaut tout simplement revenir vrai pour autre chose que non défini:

const arr = [];
arr[1] = '';
arr[2] = 'foo';

const first = arr.find((v) => { return (typeof v !== 'undefined'); });
console.log(first); // ''
0
derikb

@NicoLwk Vous devriez supprimer les éléments avec l'épissure, cela décalerait votre tableau. Alors: 

var a=['a','b','c'];
a.splice(0,1);
for(var i in a){console.log(i+' '+a[i]);}
0
asinino