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

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

本文关键字:变量 定位 对象 javascript      更新时间:2023-09-26

我正在制作一个在线游戏,用户有不同的ID。

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

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

CCD_ 1将创建具有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);

使用Undercore或Lodash(或者香草JS,如果你喜欢的话):

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

等等。

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

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

查找方式:

var player123 = player[123];