Jest to podobne do tego pytania, tylko PHP-> JavaScriptJak zdobyć ostatni klucz w tablicy w javascript?
How to get numeric key of new pushed item in PHP?
Jest to podobne do tego pytania, tylko PHP-> JavaScriptJak zdobyć ostatni klucz w tablicy w javascript?
How to get numeric key of new pushed item in PHP?
var foo = myarray[myarray.length - 1];
Termin zalecany jest elementem, zamiast klucza.
EDYCJA: Czy masz na myśli ostatni indeks? To jest myarray.length - 1
. Należy pamiętać, że tablice JavaScript mogą być indeksowane tylko numerycznie (chociaż tablice są również obiektami, co powoduje pewne zamieszanie).
ostatni klucz tablicy jest zawsze arr.length-1
jak tablice zawsze zaczynają się kluczowym 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
Jeśli jest to płaska tablica, by to zrobić:
return array.length - 1;
Jednakże, jeśli masz tablicę asocjacyjną , musisz znać klucz i przechodzić przez niego. Pamiętaj jednak, że JavaScript nie zna czegoś takiego jak "tablica asocjacyjna", ponieważ większość elementów w JavaScript to obiekty.
Nota prawna: Użycie tablic asocjacyjnych w kodzie JavaScript to generally not a good practice i może prowadzić do problemów.
var x = new Array();
x['key'] = "value";
for (i in x)
{
if (i == 'key')
{
alert ("we got "+i);
}
}
Dlaczego warto używać 'Tablicy'? Nie używasz jego arrasucji (tj. Magicznej właściwości 'length'), więc równie dobrze możesz użyć' Object'. Specyfikacja JavaScript nie daje gwarancji na kolejność klawiszy podczas używania pętli 'for ... in', więc nie ma czegoś takiego jak" ostatni klucz " –
W pierwszym przykładzie użyłem właściwości length. Ponieważ ta właściwość nie jest dostępna w tablicach asocjacyjnych, dodałem drugi przykład, który w przejrzysty sposób demonstruje przypadek użycia "symulowanego ostatniego klucza".Ponieważ PO znałby nazwę ostatniego klucza, możliwe byłoby uzyskanie rzeczywistego elementu za pomocą powyższej metody. –
Re. właściwość długości, miałem na myśli drugi przykład, a nie pierwszy. –
Najpierw przepraszam za słaby angielski. załóżmy, że twoja tablica jest "tablicą powiązaną z kluczem" z kluczami łańcuchowymi w formacie liczbowym. Będziesz potrzebował 3 kroków: uzyskać wszystkie klucze tablicy. zamień klucze tablicy na liczbę całkowitą. pobierz maks. Lub długość lub dowolną inną właściwość klawiszy.
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
nadzieję, że pomogło
następnie, aby odpowiedzieć na oryginalne pytanie, jaki jest ostatni klucz w tablicy asocjacyjnej musiałem zrobić: stringKeys [len-1] lub jeśli chcesz liczbę całkowitąKeys [len-1]. –
Math.max(...[...myArray.keys()]);
Tutaj myArray
jest nazwą tablicy.
To jest rozwiązanie oparte na Twoim zadawanym pytaniu. Zakładając, że tablica jest jednowymiarową tablicą lub wszystkie klucze tablicy są numeryczne.
Czytano: Math.max, Array.prototype.keys(), Iterators and generators
To może być źle, trzeba spojrzeć na to stanowisko. – user198729
Co "może być nie tak"? –
@ user198729 Tablice w JavaScript działają inaczej niż PHP. PHP implementuje je jako rzadkie tablice, dlatego indeks pierwszego/ostatniego elementu nie zawsze wynosi 0/len-1. W JavaScript wszystkie tablice są gęstymi tablicami, zero-podstawowymi, w pełni wypełnionymi (może niezdefiniowanymi) elementami indeksu od 0 do. Length-1. – nicerobot