Pesquisa de site

javascript - Obtendo o tamanho de um array 'nomeado'?


Não tenho certeza de como eles são chamados, mas o que quero dizer é isto:

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

o comprimento deve ser 2 aqui

como posso ver quantos atributos eu tenho no array? array.length não funciona =( Estou tentando todo tipo de coisa e sinto que estou perdendo algo realmente simples aqui..

Obrigado pela sua ajuda

Resposta #1

Você pode usar Object.keys() para obter um array de chaves e, em seguida, contá-las:

Object.keys(array).length

Ou, se você estiver mirando no ECMAScript 3 ou de outra forma não tiver Object.keys(), então você pode contar as chaves manualmente:

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

Existem alguns casos extremos com essa abordagem, dependendo dos navegadores que você está visando, então usar o polyfill da Mozilla para Object.keys() pode ser uma boa ideia.