Javascript 用数组存储对象的属性

Javascript 用数组存储对象的属性,javascript,Javascript,我有一个数组,我想用它来存储属性 例如: player[0].name = bla1; player[0].money = 130; 现在我创建了for循环,但是当我尝试在其中存储名称时,我得到了一个错误 var player = []; for(i=0; i < players; i++) { var x = i + 1; var nickName = document.getElementById('player' + x + 'name').v

我有一个数组,我想用它来存储属性

例如:

player[0].name = bla1;
player[0].money = 130;
现在我创建了for循环,但是当我尝试在其中存储名称时,我得到了一个错误

   var player = [];
   for(i=0; i < players; i++)
   {
     var x = i + 1;
     var nickName = document.getElementById('player' + x + 'name').value
     player[i].name = nickName;
     console.log(player[i].name);
   }

您需要先创建对象,然后才能在其上放置属性:

var player = [];
for(i=0; i < players; i++)
{
    var x = i + 1;
    var nickName = document.getElementById('player' + x + 'name').value
    player[i] = {};                   // *** Create the object
    player[i].name = nickName;
    console.log(player[i].name);
}
var-player=[];
对于(i=0;i
您可以在创建时添加属性:

var player = [];
for(i=0; i < players; i++)
{
    var x = i + 1;
    var nickName = document.getElementById('player' + x + 'name').value
    player[i] = {
        name: nickName
    };
    console.log(player[i].name);
}
var-player=[];
对于(i=0;i
您需要先创建对象,然后才能在其上放置属性:

var player = [];
for(i=0; i < players; i++)
{
    var x = i + 1;
    var nickName = document.getElementById('player' + x + 'name').value
    player[i] = {};                   // *** Create the object
    player[i].name = nickName;
    console.log(player[i].name);
}
var-player=[];
对于(i=0;i
您可以在创建时添加属性:

var player = [];
for(i=0; i < players; i++)
{
    var x = i + 1;
    var nickName = document.getElementById('player' + x + 'name').value
    player[i] = {
        name: nickName
    };
    console.log(player[i].name);
}
var-player=[];
对于(i=0;i
首先,没有长度,所以我不确定你到底在循环什么

for(i=0; i < players; i++)  <--

首先,没有长度,所以我不确定你到底在循环什么

for(i=0; i < players; i++)  <--

您应该首先将player[i]设置为对象。 因此,它将是:

 var player = [];
 for(i=0; i < players; i++)
 {
   var x = i + 1;

   var nickName = document.getElementById('player' + x + 'name').value
   player[i] = player[i] || {};
   player[i].name = nickName;
   console.log(player[i].name);
 }
var-player=[];
对于(i=0;i
您应该首先将player[i]设置为对象。 因此,它将是:

 var player = [];
 for(i=0; i < players; i++)
 {
   var x = i + 1;

   var nickName = document.getElementById('player' + x + 'name').value
   player[i] = player[i] || {};
   player[i].name = nickName;
   console.log(player[i].name);
 }
var-player=[];
对于(i=0;i
错误是什么?错误是什么?感谢您的解释!我会在10分钟内接受这个答案(在计时器后)。有点想弄清楚对象是如何工作的,非常感谢@C.罗纳尔多:请注意埃帕斯卡雷罗关于长度的说法,我必须承认我在上面的代码中已经读过了。谢谢你的解释!我会在10分钟内接受这个答案(在计时器后)。有点想弄清楚对象是如何工作的,非常感谢@C.罗纳尔多:请注意埃帕斯卡雷罗关于长度的观点,我必须承认我在上面的代码中读过。@T.J.Crowder我也读过,直到我再次看了一遍并编辑了忍者。lolOh抱歉,这是另一段代码,我是应该像这样保留它还是应该编辑它?谢谢你对玩家的解释;顺便说一句;)@C.罗纳尔多应该是
i
,如果这是你想要的。就我个人而言,我会使用@T.J.Crowder,直到我再次查看并编辑忍者。lolOh抱歉,这是另一段代码,我是应该像这样保留它还是应该编辑它?谢谢你对玩家的解释;顺便说一句;)@C.罗纳尔多应该是
i
,如果这是你想要的。就我个人而言,我想感谢你的回复,你能解释一下玩家[我]|{}做什么吗?以前从未见过。JavaScript | |运算符是逻辑OR。因此,它将返回第一个传递的值,该值为true。这意味着如果玩家[i]存在,如果不声明新对象,就使用它;谢谢你的回复,你能解释一下玩家[我]做什么吗?以前从未见过。JavaScript | |运算符是逻辑OR。因此,它将返回第一个传递的值,该值为true。这意味着如果玩家[i]存在,如果不声明新对象,就使用它;