繁体   English   中英

如何在javascript中使用特定变量定位对象

[英]How do I target an object with a specific variable in javascript

我正在制作一款用户拥有不同身份证的在线游戏。

这是创建新玩家的客户端代码:

var newPlayer = function(id){
   return player[player.length]={
      x:0,
      y:0,
      id:id
   }
}

newPlayer(50)将创建ID为50的播放器。

如何根据其id变量选择该播放器?

谢谢

JavaScript数组的存储可能很稀疏,因此您只需执行以下操作:

function newPlayer(id) {
  return player[id] = { x:0, y: 0, id: id };
}

function findPlayer(id) {
  return player[id];
}

这导致最差的O(log N) ,但可能接近O(1) ,以可能更多的存储为代价进行查找。

查克。

创建一个函数,迭代数组,一旦找到就返回

function findPlayer(id) {
    for (var i = 0; i < player.length; i++) {
        if (player[i].id == id) return player[i];
    }
}
var player = [];
newPlayer(123);
newPlayer(234);

使用Underscore或Lodash(如果您愿意,可以使用vanilla JS):

var player123 = _.findWhere(players, { id: 123 });

等等。

如果您只搜索id,并且id在所有玩家中都是唯一的,则可以将玩家存储在键值对象而不是数组中:

function newPlayer(id) {
    player[id] = { x: 0, id: id }
}

查询通过:

var player123 = player[123];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM