javascript - js:迭代嵌套对象的更好方法?
问题描述
如果我想获取types
此数据的汽车列表:
let items = [
{
magnet: [
true
],
cars: [
{
type: "BMW"
}
],
name: "Roby"
},
{
magnet: [
false
],
cars: [
{
type: "Mercede"
}
],
name: "Max"
}
];
有没有比像这样映射一次更有效的方法?我觉得这不是很好,因为我假设cars
数组中有 1 个项目。
items.map(x => {
return x.cars[0].type
})
解决方案
没有比遍历所有对象及其 更有效的方法了.cars
,但当然还有比假设每个对象都只有一辆车更正确的方法。
最合适的辅助方法是flatMap
, 用作
const cars = items.flatMap(item => item.cars);
const brands = cars.map(car => car.type);
或一口气
const brands = items.flatMap(item => item.cars.map(car => car.type));
推荐阅读
- bash - 使用 exec "$@" 在 shell 脚本中执行新的 tmux 会话
- java - 如何从公共课程中调用私人课程
- c++ - 什么时候可以从 compare_exchange 中安全删除 memory_order_acquire 或 memory_order_release?
- python - 事务未进行,不能在 API 请求中使用。火灾存储错误
- python-3.x - 从 python 脚本返回结果到 Jupiter notebook 中的变量
- ansible - 使用 ansible 在组中有限数量的主机上运行任务
- php - PHP preg_replace 在同一个字符串中多次替换模式
- amazon-web-services - 使用 AWS CDK 配置具有 S3 源和自定义源 (ELB) 的 CloudFront 分配
- python - 在 Python Visual Studio Code Debugger 中调用类中的私有函数以观察列表
- javascript - 使用图层位置捕获或导出 konvajs 阶段