Vyhledávání na webu

javascript - Získání délky 'pojmenovaného' pole?


Nejsem si jistý, jak se tomu říká, ale tím myslím toto:

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

délka by zde měla být 2

jak mohu zjistit, kolik atributů mám v poli? array.length nefunguje =( Zkoušel jsem různé věci a mám pocit, že mi uniká něco opravdu jednoduchého..

Děkuji za vaši pomoc

Odpověď č. 1

Můžete použít Object.keys() k získání pole klíčů a potom je spočítat:

Object.keys(array).length

Nebo, pokud cílíte na ECMAScript 3 nebo jinak nemáte Object.keys(), můžete klíče spočítat ručně:

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

Existuje však několik okrajových případů s tímto přístupem, v závislosti na prohlížečích, které cílíte, takže použití polyfillu od Mozilly pro Object.keys() by mohlo být dobrou volbou.