javascript - 未捕获的类型错误 : Cannot read property 'player' of undefined

标签 javascript object properties attributes syntax-error

我正在尝试以编程方式创建此对象:

var data = {
  "player0": {
    "name":     "kahn",
    "pos":      "gk",
    "ability":  "best",
    "unsure":   0,
    "waiting":  1
  },
  "player1": {
    "name" :    "recoba",
    "pos":      "cmf",
    "ability":  "inter",
    "unsure":   1,
    "waiting":  0
   }
};

这是我的尝试,但标题中显示错误:

var test;
test.player.name = "kahn";
test.player.pos = "gk"; // enough properties for testing
console.log(test);

我该怎么做?

最佳答案

在创建对象本身之前,您无法分配对象属性:

var test = {};
test.player = {};
test.player.name = "kahn";
...
console.log(JSON.stringify(test));

或者:

var test = {};

test.player = {name: "kahn", pos: "gk"};
console.log(JSON.stringify(test));

或者:

var test = [];

var player1 = {name: "kahn", pos: "gk"};
var player2 = {name: "recoba", pos: "cmf"};

test.push(player1);
test.push(player2);
console.log(JSON.stringify(test));

或者:

var test = {};

test.player0 = {name: "kahn", pos: "gk"};
test.player1 = {name: "recoba", pos: "cmf"};

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

注意:后者对应于您在问题中给出的对象结构。

或者:

var test = {};

for (var i = 0; i < 5; i++) {
    test["player" + i] = {"name": "player " + i};
    ...
}

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

关于javascript - 未捕获的类型错误 : Cannot read property 'player' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32544962/

相关文章:

Javascript:数组中的对象,包含带有id的对象

ios - iOS 中的默认属性

c# - 在 MVC EF 中使用高级属性的正确方法

javascript - React JS View 事件

javascript - ngif 无法与 ViewData 一起使用

asp.net - Ajax控制工具包Rating Control-覆盖RatingBehavior.js

Javascript 对象数据库

c# - 如何解析和执行命令行样式字符串?

另一个属性的 Swift 类属性

PHP header 和 Access-Control_Allow_Origin 错误