JavaScript 按对象值访问数组元素

标签 javascript arrays

如果我有一组这样的键/值对:

WX Code     WMO WX Code Description
-------     -----------------------
00      No significant weather
04      Haze
10      Mist
20      Fog detected in last hour
21      Precip detected in last hour
22      Drizzle detected in last hour
23      Rain detected in last hour
24      Snow detected in last hour

我想通过整数代码作为数组访问,格式化数组的最佳方法是什么? 如果我试试这个

var arrWXcodes = [
{00:"No significant weather"},
{04:"Haze"},
{10:"Mist"},
{20:"Fog detected in last hour"},
{21:"Precip detected in last hour"},
{22:"Drizzle detected in last hour"},
{23:"Rain detected in last hour"},
{24:"Snow detected in last hour"}];

然后我尝试访问数组以获取,像这样说“Haze”,但我没有得到我想要的。我想通过键的整数值访问数组,而不是数组中的位置

arrWXcodes["04"]
undefined
arrWXcodes[04]
Object { 21: "Precip detected in last hour" }

能够使用整数键访问数组并获得预期值的最佳数据结构和访问方法是什么?

最佳答案

删除对象数组,只有一个主要对象:

var arrWXcodes = {
    "00": "No significant weather",
    "04": "Haze",
    ...
}

然后您可以使用 arrWXcodes["00"] 等访问它们的属性

在传递整数时,您在自己的代码中得到的结果与预期不同的原因是这样做引用了数组的索引而不是属性名称。上例中的 0"No significant weather",而 "Haze"1 而不是 4。索引 4(数组中的第 5 项)是您的对象,其值为 “Precip detected in last hour”

如果您确实希望能够使用整数访问值,您可以使用 ""+ 4 将数字转换为字符串,但是这将生成 "4" 而不是 "04",因此如果您的键名在该结构中,您需要实现如下内容:How can I pad a value with leading zeros?

关于JavaScript 按对象值访问数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30194237/

相关文章:

javascript - 这个 JS 函数参数语法(具有属性默认值的对象初始化器,类似于 rest/spread 参数)是否有名称和效果?

javascript - 如何从前一个元素的 NodeList 中获取所有类名?

javascript - 在 Snap.svg 图形上设置 ID 属性

javascript - 如何遍历数组字典(不知道键名)

java - 数组 如何将一个数字添加到与其值相同的位置?

javascript - 如何从 AngularJS 获取变量并在 javascript 中使用它们?

javascript - 使用 Chrome 检测 Windows 8+ 中的自定义协议(protocol)处理程序

c - 在 C 中将整数数组添加为整数

javascript - 如何将数组数组转换为对象数组,从其他数组中选择键?

c++ - 复制 C 风格的数组和结构