Javascript 导出索引数组
这是JavaScript中遍历数据结构探索的继续。 见和 给定此Javascript对象:Javascript 导出索引数组,javascript,arrays,Javascript,Arrays,这是JavaScript中遍历数据结构探索的继续。 见和 给定此Javascript对象: var parsed = { "terms": [ { "span": [ 12, 13 ], "value": "2", "label": "number" }, { "span": [ 13, 14 ], "valu
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"
};
我将如何导出标签为:number的术语的索引数组
在前面的一个问题中,如上所述,当已知只有一个这样的实例时,我能够解决导出某个标签的索引的概念
parsed.terms.map(function(d){ return d['label']; }).indexOf('number');
现在我面临着多个实例的概念,就像上面的对象一样。上面的代码snip将只派生第一个的索引
我可以通过循环遍历这些术语来构建一个数组,并查看每个术语是否都有数字标签,但是理想的解决方案可能会扩展或修改上面的代码片段,并且可能不会使用循环。当您需要同时映射和筛选时,请使用:
当需要同时映射和过滤时,请使用:
您拥有的是一个JavaScript对象,而不是JSON。您的问题似乎与JSON无关。您也不是在“解析”任何东西,您只是在遍历数据结构。JSON只是“用JS编写对象声明的方式”。没有所谓的“json对象”。它是一种文本格式。@JacqueGoupil:JSON只是“用JS编写对象声明的方式”。不,您将JavaScript对象文本与JSON混淆。这两个是相关的,但不是相同的。@FelixKing好吧,是的,如果你想说得准确的话,我想。。。用
{key:value,key:value}
声明对象是JavaScript对象文字。JSON是一种文本文件格式,或者是一种将数据表示为包含单个JavaScript对象文字的文本的方式。@JacqueGoupil:JSON不包含JavaScript(对象文字)。JSON是与XML类似的独立于语言的数据格式。它的灵感来自JavaScript,但它不是JavaScript。您拥有的是JavaScript对象,而不是JSON。您的问题似乎与JSON无关。您也不是在“解析”任何东西,您只是在遍历数据结构。JSON只是“用JS编写对象声明的方式”。没有所谓的“json对象”。它是一种文本格式。@JacqueGoupil:JSON只是“用JS编写对象声明的方式”。不,您将JavaScript对象文本与JSON混淆。这两个是相关的,但不是相同的。@FelixKing好吧,是的,如果你想说得准确的话,我想。。。用{key:value,key:value}
声明对象是JavaScript对象文字。JSON是一种文本文件格式,或者是一种将数据表示为包含单个JavaScript对象文字的文本的方式。@JacqueGoupil:JSON不包含JavaScript(对象文字)。JSON是与XML类似的独立于语言的数据格式。它的灵感来自JavaScript,但它不是JavaScript。
var indexes = parsed.terms.reduce(function(indexCollection, item, index) {
if(item.label === 'number') {
indexCollection.push(index);
}
return indexCollection;
}, []);