Eu tenho um objeto JavaScript como
var obj = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
key4: 'value4'
}
Como posso obter o comprimento e a lista de chaves neste objeto?
javascript
user160820
fonte
fonte
Respostas:
fonte
keys
.Object.prototype
, o que você não deveria fazer de qualquer maneira. Para construtores personalizados, no entanto, você está certo.[]
a ele (ouarray()
então) torna um array, que você pode usar como um array com segurança.É suportado na maioria dos principais navegadores agora.
fonte
for(key in ob)
!Object.keys
não listará as chaves dos protótipos, mas.. in obj
sim.O Underscore.js torna a transformação bastante limpa:
Edit: Eu perdi que você também pode fazer isso:
fonte
Se você deseja apenas as chaves específicas para esse objeto específico e não quaisquer
prototype
propriedades derivadas :por exemplo:
fonte
para acessar qualquer valor do objeto, você pode usar obj [key];
fonte
keys.length
, o que é diferente para cada iteração, pois cada iteração insere um valor.Podes tentar:
isso retornará:
para obter a lista de chaves ou
para obter os valores
fonte
A resposta de Anurags está basicamente correta. Mas também para oferecer suporte a
Object.keys(obj)
navegadores mais antigos, você pode usar o código abaixo copiado de https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys . Ele adiciona oObject.keys(obj)
método se não estiver disponível no navegador.fonte
Observe que no coffeescript isso pode ser realizado em todos os navegadores e nós como
e assim
fonte
Solução recursiva para navegadores que suportam ECMAScript 5:
fonte
fonte
Use
Object.keys()
... é o caminho a percorrer.A documentação completa está disponível no site MDN, abaixo:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
fonte
Se você decidir usar o Underscore.js, é melhor fazer
fonte
Em JavaScript, um objeto é uma entidade independente, com propriedades e tipo.
Para buscar valores de Object na forma de matriz: Object .values (obj) // obj é o nome do objeto que você usou Resultado -> ["value1", "value2", "value3", "value4"]
Para buscar chaves de Object na forma de matriz: Object .keys (obj) // obj é o nome do objeto que você usou Resultado -> ["key1", "key2", "key3", "key4"]
Como ambas as funções estão retornando matriz, você pode obter o comprimento das chaves ou do valor usando a propriedade length. Por exemplo - Object .values (obj) .length ou Object .keys (obj) .length
fonte
Para uma cadeia delimitada por vírgula, listando as chaves de um Objeto JSON, tente o seguinte:
fonte
Usando o ES6, você pode usar
forEach
para iterar sobre as Chaves de um Objeto. Para obter todas as chaves, você pode usar oObject.keys
que retorna todas as chaves em um ObjetoSeria a mão curta do snippet acima, que requer apenas um parâmetro
fonte
fonte
usando fatia, aplique e junte o método.
fonte