繁体   English   中英

在javascript中使用关联数组

[英]Working with associative arrays in javascript

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

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

我想使用该socket.id (字符串)作为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原型的对象,具有特殊的“length”属性。 JS中的数组还允许您通过执行for(i = ..; i ..; i + = ..)循环来按顺序获取数据。 除了Array.prototype的好处以及以某种可靠顺序加载事物列表的能力之外,数组并不是那么特别。

希望这将按照你想要的方式工作。 这是一种PHP风格:

1

var usersName = new Object();
usersName["123"] = 'Jane';
usersName["923"] = 'Charles';

for (var key in usersName) {
    console.log(key + ' => ' + usersName[key]);
}

2

var usersName = {
    '123' : 'Jane',
    '923' : 'Charles'
};

for (var key in usersName) {
    console.log(key + ' => ' + usersName[key]);
}

暂无
暂无

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

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