繁体   English   中英

派生索引数组

[英]Deriving an array of indexes

这是JavaScript中遍历数据结构的探索的延续。 看到这里这里

给定此Javascript对象:

var parsed =       {
  "terms": [
    {
      "span": [
        12,
        13
      ],
      "value": "2",
      "label": "number"
    },
    {
      "span": [
        13,
        14
      ],
      "value": "x",
      "label": "multiply"
    },
    {
      "span": [
        14,
        16
      ],
      "value": "14",
      "label": "number"
    },
  ],
  "span": [
    12,
    21
  ],
  "weight": 0.85,
  "value": "2x14 test"
};

我将如何得出标签:数字的术语索引数组?

在上面提到的上一个问题中,当已知只有一个实例时,我能够解决为特定标签派生索引的概念。

parsed.terms.map(function(d){ return d['label']; }).indexOf('number');

现在,我面临着多个实例的概念,就像上面的对象一样。 上面的代码片段将仅得出第一个的索引。

我可以通过遍历这些术语来构建数组,看看每个术语是否都有数字标签,但是理想的解决方案可能是扩展或修改上面的代码片段,也许不使用循环。

当您需要同时映射和过滤时,请使用reduce

var indexes = parsed.terms.reduce(function(indexCollection, item, index) {
    if(item.label === 'number') {
        indexCollection.push(index);
    }

    return indexCollection;
}, []); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM