如何在grandCouncil数组中获得正确的对象变量名

How do I get the correct object variable names in the grandCouncil array?

本文关键字:对象 变量名 grandCouncil 数组      更新时间:2023-09-26

当我控制台.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);
jungleAnimal1、2和3是对象文字。

当您将它们推送到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即可。