javascript - 在 javascript 中使用关联数组

标签 javascript jquery

我想使用一个变量作为我的关联数组的索引

var usersName = []; // Just defining
userName[socket.id] = socket.name; // socket.id is an alphanumeric string

我想使用 socket.id(string) 作为 usersName 数组的自定义索引,这样我就可以获得连接到套接字的所有用户的列表.问题是我转义变量的方式(我猜)。

我已经试过了,但是没有用:

usersName ['\''+socket.id+'\''] = socket.name;

这在 PHP 中有效,但我无法让它在 javascript 中工作

感谢您的帮助。

最佳答案

你要做的基本上是这样的:

// say socket = {id: 123, name: 'Bob'};
var foo = {}; // create an object
foo[socket.id] = socket.name; // put socket.name under foo.

var i;
for (i in foo) { //loop through list
   console.log(i, "is", foo[i]); //123 is Bob
}

对吧?就像发表的评论一样,JS 没有“关联数组”,而是一些更好的伪经典对象。 JavaScript 中的对象与 PHP 中的对象完全不同。在学习 JavaScript 时,您需要重新学习“对象”的含义。 javascript 中的数组并不值得骄傲。它们本质上只是扩展 Array 原型(prototype)并具有特殊“长度”属性的对象。 JS 中的数组还允许您通过执行 for(i =..; i..; i +=..) 循环来按顺序获取数据。除了 Array.prototype 的好处和能够以某种可靠的顺序加载事物列表的能力之外,数组并没有那么特别。

关于javascript - 在 javascript 中使用关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15581696/

相关文章:

javascript - 返回似乎没有等待 javascript

php - 从另一台服务器上的网站获取内容

javascript - 为单元测试模拟 DOM 事件的最佳方法?

javascript - 验证 xs :duration using a regular expression in Javascript

javascript - jQuery 尚未准备好,但仍在实例化

javascript - Angular Table 和过滤空列

javascript - 获取很多复选框的值,然后通过foreach循环打印出来

javascript - 是否有 JavaScript/HTML5 代码可以将任何视频格式转换为 mp4 格式,然后上传到存储服务器以便在任何客户端上观看?

javascript - 子主题 - Javascript 未触发

javascript - 使用一次后删除 Javascript 模块中的公共(public)方法?