当我console.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数组时,对这些对象的引用将添加到该数组中,而变量名则没有。

如果要在junitCouncil下使用丛林动物1、2和3作为属性,则grandCouncil应该是一个对象,而动物可以是属性,如下所示:

grandCouncil = {
    "jungleAnimal1" : { // type, collects, canFly }
    "jungleAnimal2" : ...
    "jungleAnimal3" : ...
}


谢谢@zerkms的澄清

08-27 07:22