2016-11-13 54 views
-1
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运行良好。但是如果判决不起作用。我收到错误消息。我不知道为什么。请帮帮我。在node.js访问属性

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

TypeError: Cannot set property 'team' of undefined 

回答

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++) {... 
+0

太感谢你了!!!!!!! – firepunch

+0

我可怕的错误.. :( – firepunch