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 - 代码没有按顺序执行

javascript - 如何使用 Angular 6 触发 fadeInRight 效果

javascript - 如何在Web组件中设置标签的内部文本

arrays - 一个新工作表是另一个工作表的实时过滤版本?

javascript - 从 JavaScript 数组中删除索引和对象值

php - 查询背后的实时搜索引擎逻辑

javascript - 发布到 localhost 时 fetch 返回 400

javascript - $.ajax 无法正常工作

c++ - 在 C++ 中,如何从函数返回对象数组?

javascript - 如何获取用户输入数组元素的平均值?