Question Obtenir le dernier élément dans un tableau


Voici mon code JavaScript jusqu'à présent:

var linkElement = document.getElementById("BackButton");
var loc_array = document.location.href.split('/');
var newT = document.createTextNode(unescape(capWords(loc_array[loc_array.length-2]))); 
linkElement.appendChild(newT);

Actuellement, il prend l'avant-dernier élément du tableau à partir de l'URL. Cependant, je veux faire une vérification pour le dernier élément du tableau à être "index.html" et si oui, prenez le troisième à dernier élément à la place.


697
2017-07-09 19:45


origine


Réponses:


if(loc_array[loc_array.length-1] == 'index.html'){
 //do something
}else{
 //something else.
}

Dans le cas où votre serveur sert le même fichier pour "index.html" et "inDEX.html" vous pouvez également utiliser: .toLowerCase().

Cependant, vous pourriez envisager de faire ce côté serveur si possible: il sera plus propre et fonctionnera pour les personnes sans JS.


763
2017-07-09 19:48



Je ne sais pas s'il y a un inconvénient, mais cela semble assez concis:

arr.slice(-1)[0] 

ou

arr.slice(-1).pop()

Les deux reviendront undefined si le tableau est vide.


599
2017-08-23 20:19



Utilisation Array.pop:

var lastItem = anArray.pop();

Important : Ceci retourne le dernier élément et  supprime à partir du tableau


160
2018-06-14 14:06



Une version plus courte de ce que @chaiguy a posté:

Array.prototype.last = function() {
    return this[this.length-1];
}

Lire les retours de l'indice -1 undefined déjà.


112
2017-10-01 15:08



Deux options sont:

var last = arr[arr.length - 1]

ou

var last = arr.slice(-1)[0]

Le premier est plus rapide, mais le dernier semble plus agréable

http://jsperf.com/slice-vs-length-1-arr


80
2018-01-07 21:57



Voici comment l'obtenir sans aucun effet sur l'ARRAY original

a = [1,2,5,6,1,874,98,"abc"];
a.length; //returns 8 elements

Si vous utilisez pop (), il faudra modifier votre tableau

a.pop();  // will return "abc" AND REMOVES IT from the array 
a.length; // returns 7

Mais vous pouvez l'utiliser de sorte qu'il a aucun effet sur le tableau original:

a.slice(-1).pop(); // will return "abc" won't do modify the array 
                   // because slice creates a new array object 
a.length;          // returns 8; no modification and you've got you last element 

55
2017-09-03 21:25



Je préfère utiliser array.pop() que les index.

while(loc_array.pop()!= "index.html"){
}
var newT = document.createTextNode(unescape(capWords(loc_array[loc_array.length])));

De cette façon, vous obtenez toujours l'élément précédent à index.html (à condition que votre tableau ait isolé index.html comme un seul élément). Remarque: Cependant, vous perdrez les derniers éléments du tableau.


37
2018-02-24 18:39



Obtenir le dernier élément d'un tableau peut être réalisé en utilisant le tranche méthode avec des valeurs négatives.

Vous pouvez en lire plus à ce sujet ici au fond.

var fileName = loc_array.slice(-1)[0];
if(fileName.toLowerCase() == "index.html")
{
  //your code...
}

Utiliser pop () va changer votre tableau, ce qui n'est pas toujours une bonne idée.


26
2018-02-12 09:13