Questo è simile a questa domanda, solo PHP> JavaScriptCome ottenere l'ultima chiave nell'array in javascript?
How to get numeric key of new pushed item in PHP?
Questo è simile a questa domanda, solo PHP> JavaScriptCome ottenere l'ultima chiave nell'array in javascript?
How to get numeric key of new pushed item in PHP?
var foo = myarray[myarray.length - 1];
Il termine preferito è elemento, piuttosto che chiave.
MODIFICA: O intendi l'ultimo indice? Questo è myarray.length - 1
. Tieni presente che gli array JavaScript possono essere indicizzati solo numericamente (sebbene gli array siano anche oggetti, il che causa una certa confusione).
L'ultima chiave di un array è sempre arr.length-1
come array iniziano sempre con chiave 0
:
var arr = new Array(3); // arr === [], arr.length === 3
arr.push(0); // arr === [undefined, undefined, undefined, 0], arr.length === 4
arr[arr.length-1] // returns 0
var arr = []; // arr === [], arr.length === 0
arr[3] = 0; // arr === [undefined, undefined, undefined, 0], arr.length === 4
arr[arr.length-1] // returns 0
Se è una matrice piatta, questo farebbe:
return array.length - 1;
Tuttavia, se hai un array associativo , dovresti conoscere la chiave e passarci sopra. Si noti che JavaScript non conosce un "array associativo", poiché la maggior parte degli elementi in JavaScript sono oggetti.
Disclaimer: L'utilizzo di array associativi in JavaScript è generally not a good practice e può causare problemi.
var x = new Array();
x['key'] = "value";
for (i in x)
{
if (i == 'key')
{
alert ("we got "+i);
}
}
Perché usare una 'matrice '? Non stai usando l'arrayness di esso (cioè la proprietà magic 'length') così potresti usare pure un' Object'. Inoltre, le specifiche JavaScript non garantiscono l'ordine delle chiavi quando si utilizza un ciclo 'for ... in', quindi non esiste l'ultima chiave" –
Nel primo esempio, ho usato la proprietà length. Poiché questa proprietà non è disponibile su array associativi, ho aggiunto il secondo esempio, che dimostra chiaramente un caso d'uso di "ultima chiave simulata".Poiché l'OP conoscerebbe il nome dell'ultima chiave, sarebbe possibile ottenere l'elemento effettivo con il metodo sopra. –
Re. la proprietà length, mi riferivo al secondo esempio, non al primo. –
prima scusa per l'inglese scarso. si suppone che l'array sia "array associato a chiave" con chiavi stringa in formato numerico. avrete bisogno di 3 passi: ottenere tutte le chiavi di array. converte chiavi di array in numero intero. ottiene la lunghezza massima o qualsiasi altra proprietà di chiavi.
stringKeys= Object.keys(keyValueArray);//get keys of array
integerKeys=stringKeys.map(Number);//convert to integer
mx=Math.max.apply(integerKeys);//get max
len=stringKeys.length;//get length
speranza ho aiutato
quindi rispondere alla domanda originale di quale sia l'ultima chiave nell'array associativo che dovevo fare: stringKeys [len-1] o se si desidera un intero intero di chiavi [len-1]. –
Math.max(...[...myArray.keys()]);
Qui myArray
è il nome di un array.
Questa è una soluzione basata sulla domanda inviata. Supponendo che l'array sia un array monodimensionale o che tutti i tasti dell'array siano numerici.
Letture: Math.max, Array.prototype.keys(), Iterators and generators
Può essere sbagliato, si dovrebbe dare un'occhiata a quel post. – user198729
Cosa "può essere sbagliato"? –
@ user198729 Gli array in JavaScript funzionano diversamente da PHP. PHP li implementa come array sparsi, motivo per cui l'indice del primo/ultimo elemento non è sempre 0/len-1. In JavaScript tutti gli array sono array densi, elementi di indice a base zero, completamente popolati (forse non definiti) da 0 a .length-1. – nicerobot