Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在数组中推送变量_Javascript_Arrays_Variables_Push - Fatal编程技术网

Javascript 在数组中推送变量

Javascript 在数组中推送变量,javascript,arrays,variables,push,Javascript,Arrays,Variables,Push,我对编程相当陌生。大多数情况下,我可以在网上找到解决问题的方法,但这次不行。我发现了一些关于将变量推入数组的帖子,但是当我在console.log数组中检查变量是否确实在数组中时,他没有返回我想要的变量名称。我得到的是:[卡,卡],我想看到的是:[卡,火球,卡,水螺栓,等等]。我使用的代码是: var Deck = []; function Card(name, type, cost, points, damage, heal){ this.name = name;

我对编程相当陌生。大多数情况下,我可以在网上找到解决问题的方法,但这次不行。我发现了一些关于将变量推入数组的帖子,但是当我在console.log数组中检查变量是否确实在数组中时,他没有返回我想要的变量名称。我得到的是:[卡,卡],我想看到的是:[卡,火球,卡,水螺栓,等等]。我使用的代码是:

var Deck = [];

function Card(name, type, cost, points, damage, heal){
        this.name = name;
        this.type = type;
        this.cost = cost;
        this.points = points;
        this.damage = damage;
        this.heal = heal;
    }

var card_Fireball = new Card("Fireball", "spell", 2, 1, 3, 0);
var card_Waterbolt = new Card("Waterbolt", "spell", 2, 1, 3, 0);

Deck.push(card_Fireball);
Deck.push(card_Waterbolt);

console.log(Deck);

解决方案可能相当简单,但我无法用我的初学者经验来理解:p谢谢你的帮助

您所做的一切都是正确的,只需将console.log替换为以下内容:

console.log(JSON.stringify(Deck));

如果您想获得已使用的变量名数组,这些名称将在途中丢失。
若您想要一个名称数组或任何其他属性,请尝试创建一个新数组,并将每个值推送到该数组

var names = [];
Deck.map(function(v) { names.push(v.name) })
console.log(names);
输出:

["Fireball", "Waterbolt"]

使用“Deck[x].name”访问卡名,其中x是阵列组中卡的索引

要获取所有名称,请执行以下操作:

for(i=0;i<Deck.length;i++){
    console.log(Deck[i].name);
}

for(i=0;i)您不会看到变量的名称。控制台不关心您如何命名变量,只关心它的值。因为您创建了一张“卡”,所以它将显示“卡”。如果单击控制台中显示的内容,您将看到它具有正确的对象。如果在控制台中打开每张卡,您将看到您设置的卡的所有属性尝试使用console.dir而不是console.log。谢谢!这是我一直在寻找的。也感谢所有其他人的帮助!学到了很多!
for(i=0;i<Deck.length;i++){
    console.log('card_' + Deck[i].name);
}