在node.js中访问属性

时间:2016-11-13 15:58:14

标签: javascript node.js properties typeerror

sorted = Object.keys(PLAYER_LIST).sort(function(a,b){return a.score - b.score}); // have key value
console.log(PLAYER_LIST[sorted[0]].team); // result:"A"

for(var loop=0; loop<=sorted.length; loop++) {
    if(PLAYER_LIST[sorted[loop]].team == "A") { // error
           some code...
    }
  }

当我这样排序时。 console.log运行良好。但如果句子不起作用。我收到错误消息。我不知道为什么。请帮帮我。

if(PLAYER_LIST[sorted[loop]].team == "A") {
                            ^

TypeError: Cannot set property 'team' of undefined

1 个答案:

答案 0 :(得分:0)

你的循环走得太远了

for (var loop = 0; loop <= sorted.length; loop++) {
//                      ^^ here

数组长度为空时从零开始,如果数组包含一个项目则为1

如果您有阵列

var array = ['a']

数组基于零,因此第一项也是唯一一项是array[0],长度为1

当你迭代并且你一直走到数组长度时,你会过多地使用一个索引,并且你最终会尝试获得array[1],而这个数据并不存在。

你想要的是

for (var loop = 0; loop < sorted.length; loop++) {...