arrays - 过滤嵌套数组和对象
问题描述
我有一个包含 2 个复杂对象的数组:
(2) [{…}, {…}]
0:
name: 'item1'
data:
fileExtension: undefined
force_distribution: Array(9)
0: {Fx: Array(76), x: Array(76), Fxcum: Array(76)}
1: {y: Array(22), Fx: Array(22), Fxcum: Array(22)}
2: {Fx: Array(92), z: Array(92), Fxcum: Array(92)}
3: {x: Array(22), Fycum: Array(22), Fy: Array(22)}
4: {y: Array(92), Fy: Array(92), Fycum: Array(92)}
5: {Fy: Array(76), z: Array(76), Fycum: Array(76)}
6: {x: Array(92), Fz: Array(92), Fzcum: Array(92)}
7: {y: Array(76), Fz: Array(76), Fzcum: Array(76)}
8: {Fz: Array(22), z: Array(22), Fzcum: Array(22)}
length:9
1:
name: 'item2'
data:
fileExtension: undefined
force_distribution: Array(9)
0: {Fx: Array(76), x: Array(76), Fxcum: Array(76)}
1: {y: Array(22), Fx: Array(22), Fxcum: Array(22)}
2: {Fx: Array(182), z: Array(182), Fxcum: Array(182)}
3: {x: Array(22), Fycum: Array(22), Fy: Array(22)}
4: {y: Array(182), Fy: Array(182), Fycum: Array(182)}
5: {Fy: Array(76), z: Array(76), Fycum: Array(76)}
6: {x: Array(182), Fz: Array(182), Fzcum: Array(182)}
7: {y: Array(76), Fz: Array(76), Fzcum: Array(76)}
8: {Fz: Array(22), z: Array(22), Fzcum: Array(22)}
length:9
如果用户选择 x 和 Fx 有没有办法在不使用循环的情况下轻松获得以下内容?我知道如何使用过滤器,但我很难应用于嵌套数组和对象。
0:
name: 'item1'
data:
fileExtension: undefined
force_distribution: Array(9)
0: {Fx: Array(76), x: Array(76), Fxcum: Array(76)}
length:1
1:
name: 'item2'
data:
fileExtension: undefined
force_distribution: Array(9)
0: {Fx: Array(76), x: Array(76), Fxcum: Array(76)}
length:1
解决方案
我不清楚您的过滤器逻辑是什么(您说用户选择x
,Fy
但示例结果中有带有x
and的项目Fx
)但您始终可以使用 amap
和一些东西,同时使用object spreadfilter
复制其余部分:
const filtered = original.map(item => ({
...item, // not needed if top level array items only have 'data' key
data: {
...item.data,
force_distribution: item.data.force_distribution.filter(/* your filter logic here */)
}
}));
推荐阅读
- ruby-on-rails - <% end -%> 的 - 是什么?
- selenium - 如何处理 sockettimeoutexception:通过 selenium chrome 驱动程序启动 URL 时读取超时
- javascript - wp_add_inline_script 没有向我的页面添加任何内容,不知道为什么
- javascript - Geoserver 中 SAMEORIGIN 的 X-Frame-Options 阻止查看我的 iframe
- sapui5 - UI5 的 sap.m.Input 控制器中只有大写或大写字母
- javascript - 从 perl 脚本获取查询时出现 XML 解析错误
- vue.js - 如何成功部署我的 Vue 应用程序?(CLI3)
- reactjs - 反应原生错误:node_modules/axios/lib/core/createError.js:16:24 in createError
- postgresql - 如何在 sequelize PostgreSQL 中按周或按月排序?
- angular - 如何在选择时获取所选选项的值