JSON / Javascript:返回哪个数组对象包含某个属性

时间:2015-07-31 13:06:11

标签: javascript arrays json

给定一个JSON对象,如:

{
  "something": {
    "terms": [
      {
        "span": [
          15,
          16
        ],
        "value": ":",
        "label": "separator"
      },
      {
        "span": [
          16,
          20
        ],
        "value": "12.5",
        "label": "number"
      }
    ],
    "span": [
      15,
      20
    ],
    "weight": 0.005,
    "value": ":12.5"
  }

我想写一些javascript来确定" term"的索引。它有一个"标签":"数字"。最终我想确定"值" "术语"它有一个"标签":"数字",我知道我可以用这样的东西得到它,其中索引是已知的:

parsed = JSON.parse(result.trim());
var numberValue = parsed.terms[1].value;

我的第一个想法可能只是编写一个foreach循环,然后当我到达一个具有"标签":" number"的数组对象时返回numberValue。

有更优雅和/或简洁的方法吗?

1 个答案:

答案 0 :(得分:1)

使用Array.prototype.filter

var numberValue, list = parsed.something.terms.filter(function(a){
  return a.label==='number';
});
numberValue = list.length ? list[0].value : -1;