你能给一个对象一个javascript的密钥吗?

时间:2014-04-17 15:54:41

标签: javascript arrays object

如果您有像

这样的对象数组
[{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来为每个对象提供密钥。

干杯

4 个答案:

答案 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];
}