[英]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.