Eu queria saber se havia alguma maneira no JavaScript para percorrer um objeto como esse.
for(var i in myObject) {
// ...
}
Mas obtenha o nome de cada propriedade assim.
for(var i in myObject) {
separateObj[myObject[i].name] = myObject[i];
}
Não consigo encontrar nada parecido no Google. Eles dizem para passar os nomes das variáveis com eles, mas isso não é uma opção para o que estou tentando alcançar.
Obrigado por qualquer ajuda que você pode oferecer.
javascript
object
properties
Olical
fonte
fonte
seperate
deveria serseparate
'l' + new Array(1000).join('o') + 'ng'
caminho desde então.Respostas:
Use Object.keys ():
Object.keys()
fornece uma matriz de nomes de propriedades pertencentes ao objeto de entrada.fonte
i
É o nome.Então você poderia fazer:
fonte
hasOwnProperty
se não quiser propriedades herdadas. Dessa forma, você não está seguindo cegamente alguma regra. Pode ser que, em alguns casos, você realmente queira examinar as propriedades herdadas. Outra maneira de percorrer as propriedades de um objeto é usando Object.keys .Object.keys(obj).forEach(function(prop){ alert obj[prop]})
Isenção de responsabilidade Eu entendi mal a pergunta: "Posso saber o nome da propriedade à qual um objeto foi anexado", mas optei por deixar a resposta, pois algumas pessoas podem parar aqui enquanto procuram por isso.
Não, um objeto pode ser anexado a várias propriedades, portanto, não há como saber seu nome.
Qual seria o nome do obj?
Tem certeza de que não deseja apenas o nome da propriedade do loop for?
fonte
você pode iterar facilmente em objetos
por exemplo: se o objeto for var a = {a: 'maçã', b: 'bola', c: 'gato', d: 'boneca', e: 'elefante'};
fonte
para acesso direto a uma propriedade de objeto por posição ... geralmente útil para a propriedade [0] ... então ela contém informações sobre o outro ... ou no node.js 'require.cache [0]' para o primeiro módulo externo carregado , etc etc.
fonte
Além de "Object.keys (obj)", temos um loop "for ... in" muito simples - que faz um loop sobre os numerosos nomes de propriedades de um objeto.
fonte
Para obter a propriedade do objeto ou a "chave da matriz" ou "índice da matriz", dependendo do idioma nativo ..... Use o método Object.keys ().
Importante, isso é compatível apenas com "Navegadores modernos":
Portanto, se seu objeto for chamado, myObject ...
Walla! Isso definitivamente funcionará no mais recente firefox e ie11 e chrome ...
Aqui está alguma documentação em MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
fonte
EM ES5
Por exemplo, você tem este tipo de objeto:
E agora, se você deseja ter uma função que, se você passar '0' como um parâmetro - para obter 'STEP_ELEMENT', se '2' para obter 'BLUE_ELEMENT' e assim por
Provavelmente, essa não é a melhor solução para o problema, mas é bom dar uma idéia de como fazê-lo.
Felicidades.
fonte
A partir de 2018, você poderá utilizá-lo
Object.getOwnPropertyNames()
conforme descrito na documentação do desenvolvedor Mozillafonte
Quando você executa o loop for / in que você coloca primeiro, i é o nome da propriedade. Então você tem o nome da propriedade, i, e acessa o valor executando myObject [i].
fonte
Essas soluções também funcionam.
fonte
O uso da
Object.keys()
função para adquirir propriedades de umObject
e pode ajudar a procurar propriedades por nome, por exemplo:fonte
Rápido e sujo:
fonte