gpt4 book ai didi

javascript - 获取: RangeError: Maximum call stack size exceeded

转载 作者:行者123 更新时间:2023-12-03 11:54:47 25 4
gpt4 key购买 nike

我正在使用 Node js 和套接字 IO 创建游戏。

我正在创建如下玩家

  var player =  new playa.playa();
player.name = info.name;
player.picture = info.picture;
player.email = info.email;
player.user_id = info.user_id;
player.socket = socket;

然后我将播放器添加到我的数组

      playerPool[info.user_id] = player;

映射,这样我就可以引用playerPool[user_Id],而不必迭代循环

我然后想将我的玩家添加到我的游戏

        g.addPlayer(playerPool[info.user_id]);


this.addPlayer = function(player)
{
var self = this;
if(this.max_players > this.current_players.length)
{
self.current_players[player_userid] =player;
}
}

但是,我不断收到错误

for(var key in obj)  RangeError max call stack size exceeded

我的问题是

  1. 为什么 JavaScript 会循环遍历我的按键?

如果我打电话

       player.user_id

它返回玩家类的用户ID,所以我知道它是一个有效的对象。

我从未要求 JavaScript 迭代该对象,只需将其重新映射到游戏类中的玩家数组,就像我对玩家池所做的那样。然而这似乎是一个问题。有人遇到同样的问题吗?

最佳答案

for 循环的语法正是这样做的,它循环遍历该对象的键值

所以语法

for(var key in obj) 

将给出该对象的键,即属性。为了访问对象值,您需要在此 for 循环中使用 obj[key]。

获取您创建的数组的值的另一种方法是:

playerPool.forEach(function(player) {
//Over here you get each player in the array
});

关于javascript - 获取: RangeError: Maximum call stack size exceeded,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25651068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com