我想使用一个变量作为我的关联数组的索引
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/