![](/img/trans.png)
[英]Function 'concat' (in JavaScript) is not working for associative arrays
[英]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.