如何在 JavaScript 中过滤和映射对象数组? [复制]

2024-01-09

我有一系列对象,
我想从中有条件地创建另一个对象数组。

Eg. -

var devs = [
    {
        name: 'A',
        age: 26,
        tech: ['JavaScript','React'],
        addr:{
            country:'India',
            city:'Pune'
        }
    },
    {
        name: 'B',
        age: 25,
        tech: ['Node','AngularJs'],
        addr:{
            country:'USA',
            city:'NY'
        }
    },
    {
        name: 'C',
        age: 27,
        tech: ['React','AWS'],
        addr:{
            country:'UK',
            city:'London'
        }
    }
]

我想要一个对象数组在他们的“科技”领域阵列中“反应”,
只想显示他们的名字和技术,
以下是预期输出 -

[
    {
        name: 'A',
        tech: ['JavaScript','React']
    },
    {
        name: 'C',
        tech: ['Java','React'],
    }
]

我知道出于条件目的可以使用过滤方法,
但是如何从对象数组中删除不必要的字段呢?
这里可以使用map方法吗?如果是这样我该如何实施?

以下是我的半熟代码 -

var filteredDevs = devs.filter(temp => temp.tech.includes('React'));

您可以使用Array.filter https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter and Array.map https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map为此,请使用过滤器Array.includes https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes你在哪里检查是否存在React in the tech array.

第二步是通过仅保留来映射到所需的对象name and tech来自原始对象的属性。

const devs = [{"name":"A","age":26,"tech":["JavaScript","React"],"addr":{"country":"India","city":"Pune"}},{"name":"B","age":25,"tech":["Node","AngularJs"],"addr":{"country":"USA","city":"NY"}},{"name":"C","age":27,"tech":["Java","AWS"],"addr":{"country":"UK","city":"London"}}];
const devReact = devs.filter(obj => obj.tech.includes("React")).map(obj => ({"name":obj.name, "tech":obj.tech}));
console.log(devReact);

您也可以使用以下方法一次性完成Array.reduce https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce,您只积累那些具有React在数组中。

const devs = [{"name":"A","age":26,"tech":["JavaScript","React"],"addr":{"country":"India","city":"Pune"}},{"name":"B","age":25,"tech":["Node","AngularJs"],"addr":{"country":"USA","city":"NY"}},{"name":"C","age":27,"tech":["Java","AWS"],"addr":{"country":"UK","city":"London"}}];
const devReact = devs.reduce((acc, ele) =>  ele.tech.includes("React") ? acc.concat({"name": ele.name, "tech":ele.tech}): acc ,[]);
console.log(devReact);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 JavaScript 中过滤和映射对象数组? [复制] 的相关文章

随机推荐

  • 从 WinForms 迁移到 WPF

    那么我们正在考虑从 WinForms 迁移到 WPF WPF 有哪些陷阱 我们得到了组件one的flexgrid 是否有任何wpf网格具有相同的功能 它的一件好事是您可以为单元格实现自己的绘制方法 它可以合并单元格打印并保存为多种文件格式
  • 在 ServiceStack Web 服务中设置公共属性

    我正在尝试使用 Sqlite 为 ServiceStack 服务编写单元测试 由于 Sqlite 不支持存储过程 因此我创建了 ServiceCommand 类型的公共属性 它将命令文本和命令类型作为输入 默认情况下 它配置为运行存储过程
  • 无法解析方法“findViewById(int)”

    我遇到了麻烦findViewByid但我找不到问题出在哪里 这是我的FirstFragment班级代码 import android app Fragment import android os Bundle import android
  • 为什么使用 unix-compress 和 go compress/lzw 会产生不同的文件,而其他解码器无法读取?

    我在终端中压缩了一个文件compress file txt并得到 如预期 file txt Z 当我将该文件传递给ioutil ReadFile in Go buf0 err ioutil ReadFile file txt Z 我收到错误
  • Qt 应用程序框架中的分段错误

    由于 QColor colorMap 9 这会产生分段错误 如果我删除 colorMap 分割错误就会消失 如果我把它放回去 它回来了 如果我清理所有然后构建所有 它就会消失 如果我增加它的数组大小它就会回来 另一方面 如果我减少它 它就不
  • 在代理键上使用反向索引的好习惯? (甲骨文)

    假设我有一个带有自动递增代理键的表 这是使用反向索引的好例子吗 我的说法是否正确 插入 插入索引 会更快 因为新值将随机插入 而不是总是插入最右边的叶子 不断强制重新平衡 索引查找会稍微慢一些 因为数据库必须花费 一点 时间来反转索引 因为
  • 来自服务器的 HTML 响应

    我有一个应用程序将一些数据提交到本地服务器 结果服务器将发回 JSON 说 状态 成功 当我在 2 3 SDK 模拟器中运行该应用程序 但安装在 Galaxy Tab 2 2 SDK 中时 它可以正常工作 相同的响应采用 html 的形式
  • Spark中的FPGrowth算法

    我正在尝试在 Spark 中运行 FPGrowth 算法的示例 但是遇到错误 这是我的代码 import org apache spark rdd RDD import org apache spark mllib fpm FPGrowth
  • corePoolSize 0 的 ThreadPoolExecutor 在任务队列已满之前不应执行任务

    我正在经历Java 并发实践并被困在8 3 1 线程的创建和销毁话题 以下脚注警告不要保留corePoolSize为零 开发人员有时会试图将核心大小设置为零 以便工作线程 最终会被拆除 因此不会阻止 JVM 退出 但这可能会导致一些问题 不
  • WPF:如何使视图动态化?

    我有以下 xaml 以下 xaml 必须在运行时动态填充需要什么 但是如何填充 MainWorkspaceViewModel 有一个名为 View 的属性 该属性是对象类型 因此我可以设置其中的每个视图
  • 调试包含在 C++/CLI DLL 中的静态库时,调试器不会单步执行本机代码

    在 C 应用程序中 我引用了本机 C 静态库 我将其包装在 C CLI DLL 中 我选择静态库而不是 DLL 因为我还有与向用户发布应用程序的过程相关的其他限制 在该论坛上提供的许多主题中 我发现了以下实现 Main MyCLRDLL t
  • 如何了解 Windows 10 周年更新或更高版本在 WPF 应用程序中使用的是浅色主题还是深色主题?

    我编写了一个 WPF 桌面应用程序 想使用桌面桥将其放入 Windows 应用商店 该应用程序能够以浅色和深色模式呈现 并使用强调色 但是 为了成为 Windows 10 的好公民 如果可能的话 我希望从操作系统获取该信息 据我目前的理解
  • 如何从复选框中获取未选中的值?

    我有一个复选框列表 当我选中该复选框时 它应该将值插入数据库 当我取消选中该复选框时 应该从数据库中删除数据 如果我在复选框中分配一个值 那么我只能获取选中的复选框值 如果我使用隐藏字段 那么我可以获得复选框的所有值 但我不知道哪个 1 被
  • 求 pandas 中连续两行的平均值

    我试图找到每列中连续两行的平均值 In 207 df DataFrame A 9 4 2 1 4 B 12 7 5 4 8 In 208 df Out 207 A B 0 9 12 1 4 7 2 2 5 3 1 4 4 4 8 结果应该是
  • 关于对库/框架进行单元测试的最佳实践是什么?

    Context 我正在努力为我正在设计的库 框架编写一组单元测试 对于上下文 请将我的库视为一组相关对象的分层对象层 Question 基本上 我试图遵守有关单元测试的原则和最佳实践 如一些帖子 https stackoverflow co
  • 如何改变 svg 的颜色?

    使用figma创建了一个svg并尝试更改css中的颜色 填充 黑色不起作用 SVG代码
  • 如何为 SpriteKit 游戏选择 tvOS 菜单中的按钮

    我正在为 tvOS 扩展我的 iOS 游戏 大多数游戏控制都是由touchesBegan touchesMoved and touchesEnded 我所有的选择按钮都按以下方式处理 if button1 contains location
  • 我可以用作 webpack 配置的 es 模块吗?

    我使用的是节点 13 4 0 带有 es 模块 通过 mjs 扩展名 使用 webpack 配置文件作为 es 模块会崩溃 Error ERR REQUIRE ESM Must use import to load ES Module pa
  • Mockito 和 Java Spring - 测试中的存储库

    我是mockito Java Spring的新手 我尝试进行测试 我有一个管理控制器 其中包含以下方法 RequestMapping value admin users method RequestMethod GET public Res
  • 如何在 JavaScript 中过滤和映射对象数组? [复制]

    这个问题在这里已经有答案了 我有一系列对象 我想从中有条件地创建另一个对象数组 Eg var devs name A age 26 tech JavaScript React addr country India city Pune nam