你能用javascript给一个对象一个键吗

Can you give an object a key in javascript?

本文关键字:一个 javascript 一个对象      更新时间:2023-09-26

如果您有像这样的对象数组

[{rID:53, name:Roger, age:43},{rID:12, name:Phil, age:22}]

有没有可能给每个对象一个像一样的密钥

 [53:{name:Roger, age:43},12:{name:Phil, age:22}]

我知道每个对象都有一个索引号,但我正在寻找一种方法来查找对象,而不是基于它们的索引位置,最好是在找到rID=53类型的对象之前不必循环。

我会使用mysql行中的PKs为每个对象提供它的密钥。

干杯

如果您想要一个具有任意键的无序变量集合。然后使用一个对象。

{"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。

请注意,在这两种情况下,给定属性都不能有多个值(尽管可以有一个值数组)。

您需要一个对象。

{
  53: {
    name: "Roger",
    age: 43
  },
  12: {
    name: "Phil",
    age: 22
  }
}

否。js数组中不能有索引。数组只有索引,对象只有键。JavaScript中没有像关联数组这样的东西。如果(原始数组的)顺序无关紧要,您可以使用一个对象:

{53:{name:"Roger", age:43},12:{name:"Phil", age:22}}

您可以使用对象来执行此

var map = {"53":{"name": "Roger", "age": "43"},"12":{"name": "Phil", "age": "22"}};

然后像数组一样访问值(注意,我使用字符串,因为这就是键存储的形式,字符串,你可以使用整数访问它,但在搜索属性时,它只会转换为字符串):

map["53"]

您还可以循环浏览此地图对象:

for (var key in map) {
   var value = map[key];
}