如何在javascript中使用特定变量来定位对象
我正在制作一个在线游戏,用户有不同的ID 以下是创建新播放器的客户端代码:如何在javascript中使用特定变量来定位对象,javascript,arrays,html,object,Javascript,Arrays,Html,Object,我正在制作一个在线游戏,用户有不同的ID 以下是创建新播放器的客户端代码: var newPlayer = function(id){ return player[player.length]={ x:0, y:0, id:id } } newPlayer(50)将创建一个ID为50的播放器 如何根据其id变量选择该播放器 谢谢创建函数,迭代数组,找到后返回 function findPlayer(id) { for (var i = 0
var newPlayer = function(id){
return player[player.length]={
x:0,
y:0,
id:id
}
}
newPlayer(50)
将创建一个ID为50的播放器
如何根据其id
变量选择该播放器
谢谢创建函数,迭代数组,找到后返回
function findPlayer(id) {
for (var i = 0; i < player.length; i++) {
if (player[i].id == id) return player[i];
}
}
函数findPlayer(id){
对于(变量i=0;i
JavaScript数组的存储可以是稀疏的,因此您可以执行以下操作:
function newPlayer(id) {
return player[id] = { x:0, y: 0, id: id };
}
function findPlayer(id) {
return player[id];
}
这将导致最坏情况下的O(logn),但可能接近O(1),以潜在的更多存储为代价进行查找
查克
使用下划线或Lodash(或香草JS,如果您愿意):
等等
如果只按id搜索,且id在所有玩家中是唯一的,则可以将玩家存储在键值对象中,而不是数组中:
function newPlayer(id) {
player[id] = { x: 0, id: id }
}
查找途径:
var player123 = player[123];
function newPlayer(id) {
player[id] = { x: 0, id: id }
}
var player123 = player[123];