Javascript - 通过键获取特定JSON数组元素中的属性值

gla*_*rey 5 javascript arrays json key

我有一个像这样的JSON结构:

{
map: [
      {"key1":"valueA1", "key2":"valueA2", "key3":"valueA3"},
      {"key1":"valueB1", "key2":"valueB2", "key3":"valueB3"},
      {"key1":"valueC1", "key2":"valueC2", "key3":"valueC3"},
       .... etc
     ]
}
Run Code Online (Sandbox Code Playgroud)

...我通过JSON.parse()加载到我的javascript应用程序中成为对象.

我想从对象数组的元素中检索(比方说)key3的值,其中key2 ='valueB2'.

我可以通过循环来完成它,但想知道是否有更优雅(例如单行和更有效)的方式这样做,而不必知道数组元素的索引号?

我已经google加载了一些网站,但收效甚微.或者我会更好地简化/删除数组,而不是简单的对象列表?

谢谢.

Amj*_*sad 3

JSON 通常会在所有键和值(数字除外)周围使用双引号 "。

然而循环是你拥有的最有效和最好的选择。有新的函数式数组迭代方法,但仅适用于新的 JS 引擎和浏览器,可以在这里找到它们:https ://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array

如果您可以自由更改 JSON 结构,则应该将其实现为对象,而不是对象数组,其中键是 key2 的值​​,值是对象。

例子:

{
    "valueB2": {
        "key1": "valueB1",
        "key2": "valueB2",
        "key3": "valueB3"
    }
}
Run Code Online (Sandbox Code Playgroud)

对象的检索将是 O(1) 并且简单如下obj["valueB2"]