如何在grandCouncil数组中获得正确的对象变量名
How do I get the correct object variable names in the grandCouncil array?
当我控制台.log(grandCouncil)时,我最终得到的是:
[Object, Object, Object]
我想看到的是变量的名称,而不是像这样:
[jungleAnimal1, jungleAnimal2, jungleAnimal3]
这是我的代码:
var grandCouncil = [];
var jungleAnimal1 = {
'type': "frog",
'collects': ['flys','moths','beetles'],
'canFly': false
};
var jungleAnimal2 = {
'type': "jaguar",
'collects': ['wild pigs','deer','sloths'],
'canFly': false
};
var jungleAnimal3 = {
'type': "parrot",
'collects': ['fruits','bugs','seeds'],
'canFly': true
};
grandCouncil.push(jungleAnimal1,jungleAnimal2,jungleAnimal3);
console.log(grandCouncil);
当您将它们推送到grandCouncil数组中时,对这些对象的引用会添加到数组中,但变量名不会。
如果你想在grandCommission下使用jungleAnimal1,2和3作为属性,grandCommncil应该是一个对象,动物可以是属性,比如:
grandCouncil = {
"jungleAnimal1" : { // type, collects, canFly }
"jungleAnimal2" : ...
"jungleAnimal3" : ...
}
感谢@zerkms的澄清
数组中存储的值是Object;例如,您可以使用点表示法访问对象的值,因此访问jungleAnimal2的类型将简单地为:
grandCouncil[1].type
你可以
for(var i = 0;i < grandCouncil.length; i++){
for(animal in grandCouncil[i]){
console.log(animal);
}
}
这只是在每个数组元素(它是一个对象)上迭代,然后在这些对象中的每个元素上迭代。您可以使用前面提到的点表示法访问特定的属性,所以要控制台日志所有类型,只需执行animal.type
即可。
相关文章:
- 在jquery data()对象上循环,并将值写入以键为变量名的变量中
- 如何使用包含对象键名的变量访问对象属性
- 在 JavaScript 中,在声明对象的新键:值对时,引用对象的变量名与使用“this”之间是否存在差异
- 如何将变量名转换为对象jQuery的索引字符串
- 我无法使用变量名访问对象函数
- 如何创建一个对象的多个实例,而不在JavaScript中重用相同的变量名
- 如何在grandCouncil数组中获得正确的对象变量名
- Javascript访问对象的变量名
- Javascript在对象内通过字符串引用变量名
- 如何连接(变量+对象键名)以获得点表示法的对象值
- 变量名来访问嵌套的对象键
- 将对象字面量传递给函数内具有变量名的对象
- 复制对象的属性,而不必重复所有变量名
- 通过另一个变量名访问对象的数据
- 为什么reactjs不渲染变量名以小写字母开头的对象
- 如何在DOM中通过变量名访问对象的键
- 为什么在JS库中复制变量名并添加“或对象”是常见的做法
- 在对象属性名中使用变量
- 在JavaScript对象字面量中,我应该引用'this'或者变量名
- 我能在ng-repeat循环中避免对象变量名吗?