如果您有像
这样的对象数组[{rID:53, name:Roger, age:43},{rID:12, name:Phil, age:22}]
是否可以为每个对象提供一个像
这样的键 [53:{name:Roger, age:43},12:{name:Phil, age:22}]
我知道每个对象都有一个索引号,但是我正在寻找一种方法来查找不是基于索引pos的对象,最好不必循环直到找到一个rID = 53类型的对象的事情。
我正在使用mysql行中的PK来为每个对象提供密钥。
干杯
答案 0 :(得分:2)
如果您想要一个带有任意键的无序变量集合。然后使用一个对象。
{"53":{name:Roger, age:43},"12":{name:Phil, age:22}}
数组只能有数字键,但如果要为任意位置指定值,则必须在创建数组后执行此操作。
var some_array = [];
some_array[53] = {name:Roger, age:43};
some_array[22] = {name:Phil, age:22};
请注意,这会将数组长度设置为54。
请注意,在这两种情况下,您都不能拥有给定属性的多个值(尽管您可以在其中拥有值数组)。
答案 1 :(得分:2)
你需要一个对象。
{
53: {
name: "Roger",
age: 43
},
12: {
name: "Phil",
age: 22
}
}
答案 2 :(得分:1)
没有。您不能在js数组中拥有键和索引。数组只有索引,对象只有键。在JavaScript中没有类似关联数组的东西。如果(原始数组的)顺序无关紧要,您可以使用对象:
{53:{name:"Roger", age:43},12:{name:"Phil", age:22}}
答案 3 :(得分:1)
您可以使用对象执行此操作
var map = {"53":{"name": "Roger", "age": "43"},"12":{"name": "Phil", "age": "22"}};
然后像数组一样访问该值(注意,我正在使用字符串,因为这是存储的键,字符串,您可以使用整数访问它,但在搜索属性时它只会转换为字符串反正):
map["53"]
您还可以遍历此地图对象:
for (var key in map) {
var value = map[key];
}