未捕获的类型错误:不能读取属性'player'的定义

Uncaught TypeError: Cannot read property 'player' of undefined

本文关键字:属性 定义 player 读取 不能 类型 错误 不能读      更新时间:2023-09-26

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

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));