繁体   English   中英

获取数组内部数组中的值

[英]get values in an array inside an array

我有一个问题在这里,我想所有的value的中values这个数组内数组。

 const sample = [ { "key": "sampleKey", "values": [ { "key": "insidesampleKey", "value": 2 }, { "key": "insideofinside", "value": 2 } ] }, { "key": "sampleKey2", "values": [ { "key": "insideSampleKey2", "value": 1 } ] }, { "key": "samplkey3", "values": [ { "key": "insideofsampleKey3", "value": 1 } ] } ] 

到目前为止,我只能打印第一个console.log(sample[0].values[0].value) 感谢您的帮助。 非常感谢,度过了一个愉快的周末

您可以使用reduceconcat获得平坦的单个数组。

 const sample = [{"key":"sampleKey","values": [{"key":"insidesampleKey","value":2},{"key":"insideofinside","value":2}]}, {"key":"sampleKey2","values":[{"key":"insideSampleKey2","value":1}]}, {"key":"samplkey3","values":[{"key":"insideofsampleKey3","value":1}]}] var values = sample.reduce((acc, item) => acc.concat(item.values.map(v=> v.value)),[]); console.log(values); 

我认为flatMap可能是解决此问题的最佳方法。

sample.flatMap(外部=> external.values.map(内部=> inner.value))

最简单的方法是在数组上使用flatMap,如下所示。 您可以将polyfill用于尚不支持的浏览器。 使用MDN了解更多信息。

sample.flatMap(item => item.values.map(inner => inner.value))

如果要打印其他value属性,只需在数组上进行map ,然后查看values数组,然后查看value ,最后使用flat获取单个数组:

 const sample = [{ "key": "sampleKey", "values": [{ "key": "insidesampleKey", "value": 2 }, { "key": "insideofinside", "value": 2 }] }, { "key": "sampleKey2", "values": [{ "key": "insideSampleKey2", "value": 1 }] }, { "key": "samplkey3", "values": [{ "key": "insideofsampleKey3", "value": 1 }] } ]; console.log(sample.map(e => e.values.map(x => x.value)).flat(1)); 

暂无
暂无

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

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