Wyszukiwanie w witrynie

javascript - Jak uzyskać długość „nazwanej” tablicy?


Nie jestem pewien, jak się nazywają, ale mam na myśli to:

array["water"] = 50;
array["fire"] = 30;

tutaj długość powinna wynosić 2

jak mogę zobaczyć, ile atrybutów mam w tablicy? array.length nie działa =( Próbowałem różnych rzeczy i czuję, że brakuje mi czegoś naprawdę prostego..

Dziękuję za twoją pomoc

Odpowiedź #1

Możesz użyć Object.keys(), aby uzyskać tablicę kluczy, a następnie je policzyć:

Object.keys(array).length

Albo, jeśli celujesz w ECMAScript 3 lub w przeciwnym razie nie masz Object.keys(), wtedy możesz policzyć klucze ręcznie:

var length = 0;
for (var key in array) {
    if (array.hasOwnProperty(key)) {
        ++length;
    }
}

Istnieje kilka wyjątkowych przypadków związanych z tym podejściem, w zależności od przeglądarek, które są celem, więc użycie polyfilla Mozilli dla Object.keys() może być dobrym pomysłem.