如何在 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 中过滤和映射对象数组? [复制] 的相关文章

  • 通过pm2运行node.js,但经常重新启动:通过信号[SIGINT]以代码[0]退出

    我试图在我的系统上运行 node js 但遇到了这个问题 2016 06 01 20 46 28 App app with id 13 and pid 12633 exited with code 0 via signal SIGINT 2
  • 在 Javascript 中获取第一个数字出现后的子字符串

    我正在尝试提取第一个数字之后 并包括 的字符 ABC 123SD gt 123SD 123 gt 123 123SD gt 123SD ABC gt 我当前的解决方案如下 var string1 ABC 123SD var firstDig
  • Javascript - 在加载所有图像后执行

    看了别人的问题我想 window onload 会回答我的问题 我已经尝试过这个 但它会在页面加载时立即执行代码 而不是在图像加载之后 如果有什么区别的话 图像来自 CDN 并且不是相对的 有人知道解决办法吗 我没有使用 jQuery 想要
  • 打开 md-calendar 时滚动到当前日期

    目前正在构建一个使用 Angular Material 的应用程序 我们需要一个 md calendar 组件 我们想要自定义按钮样式和内容 因此不使用普通的 md datepicker 问题是 当 md calender 打开时 滚动位置
  • 了解 sort() 比较函数

    我正在使用一个电子商务平台 该平台无法重新排序产品属性字段的选项 这真的很糟糕 因为要插入新选项 您几乎必须删除所有现有选项并重新开始 我正在尝试在客户端进行操作 这是我正在处理的内容 这是针对鞋码的 9 EE 9 1 2 EE 10 EE
  • 如何导入和导出 javascript ES6 类

    我是 javascript 和 nodejs 的新手 我正在使用这个项目来发展我的技能并学习新技术 目前我的项目使用多个相互依赖的类 类文件位于不同的目录中 我当前正在尝试使用 export 和 require 语句来允许在其他文件中引用类
  • 以一定时间间隔连续重复运行 JavaScript 函数

    这是我的第一个问题 希望您尽快回答 我想要代码连续重复一个函数 我尝试了一些代码 但没有成功 我尝试了这段代码 我想在一段时间后重复这个功能 我努力了setInterval and setTimeout 但是 我还没有收到结果 这将重复该任
  • Web 组件 - 服务/非 html 组件

    所以我来自 Angular 想看看如何创建vanilla Web components 现在 从 Angular 开始 我们倾向于将事物分开 组件 充当 HTML CSS 和一些 javascript 然后是 服务 主要负责收集数据和执行不
  • 为什么 length 是 `Array` 的属性而不是 `Array.prototype` 链

    所以我在 V8 控制台上玩了很多 我做到了 Object getOwnPropertyNames 我期望得到 结果 然而 length 所以这意味着不是成为原型链的一部分 length是所有人的成员财产Array对象 这是一个错误 还是有任
  • 启用/禁用由用户输入确定的复选框

    我有一个简单的表单 用户可以在其中输入他的联系号码 如果联系号码以 07 开头 则该复选框已启用 其他我需要禁用它的复选框 我已经编写了一些代码 但我面临的问题是 当用户键入 01 时 它会被禁用 但如果他们继续在 01 之后添加任何其他数
  • 搜索深度嵌套数组以更新对象

    我有一个深层嵌套的数据结构 我有兴趣匹配数组 和数组数组 中的某个值 然后将一些数据推送到随附的数组中 例如以下是我的数组colors并伴随着的是更多颜色数组可能存在也可能不存在 var myData color green moreCol
  • 确定元素是在页面折叠上方还是下方

    我有一些页面有多个输入框 用户可以在其中输入文本 在单击 下一步 按钮之前 需要填写其中一些内容 我弹出验证错误供用户查看 但是如果问题不在页面上 我希望页面滚动到它 而不是他们必须搜索丢失 错误的字段 我有一个滚动到位 但我无法确定要滚动
  • 如何以编程方式退出或关闭 Javascript UWP 应用程序? (Windows 10)

    我制作了一个游戏 它需要自己的退出按钮 我无法使用CoreApplication Exit https msdn microsoft com en us library windows apps windows applicationmod
  • 为什么 Web Worker 性能在 30 秒后急剧下降?

    我正在尝试提高在网络工作人员中执行时脚本的性能 它旨在解析浏览器中的大型文本文件而不会崩溃 一切都运行得很好 但我注意到使用网络工作者时大文件的性能存在严重差异 于是我做了一个简单的实验 我在同一输入上运行脚本两次 第一次运行在页面的主线程
  • 在 React Navigation 中将 props 传递给自定义抽屉导航器

    在反应导航抽屉菜单中 我想显示用户名 John Doe 它处于我的主要组件的状态 Router 我怎样才能将自定义抽屉内容组件传递给它 额外信息 我从 AsyncStorage 中获取此名称 组件已挂载 这是我的代码 export defa
  • Knockout.js 安全绑定

    我想使用带有淘汰赛的安全绑定 为此我使用敲除安全绑定 js https github com brianmhunt knockout secure binding 谁能解释一下为什么下面的代码不起作用 它会抛出一个错误 未捕获 淘汰 安全
  • 使用 AngularJS 多部分表单数据将文件上传到 Google Cloud Storage

    我正在尝试使用 AngularJS 中指定的多部分方法将图像文件上传到 Google Cloud Storagehttps cloud google com storage docs json api v1 how tos upload m
  • RoR - Rails 中的大文件上传

    我有一个 Rails Web 应用程序 允许用户上传视频 视频存储在 NFS 安装的目录中 当前的设置适用于较小的文件 但我也需要支持大文件上传 最多 4GB 当我尝试上传 4GB 文件时 它最终会发生 但从用户体验的角度来看很糟糕 上传开
  • 无法使用 HTML 设置未定义 jQuery UI 自动完成的属性“_renderItem”

    我使用以下代码将 jQuery UI 自动完成项呈现为 HTML 这些项目在自动完成控件中正确呈现 但我不断收到此 JavaScript 错误并且无法移动过去 Firefox 无法转换 JavaScript 参数 Chrome 无法设置未定
  • 如何使用 std::array 模拟 C 数组初始化“int arr[] = { e1, e2, e3, ... }”行为?

    注意 这个问题是关于不必指定元素数量并且仍然允许直接初始化嵌套类型 这个问题 https stackoverflow com questions 6111565 now that we have stdarray what uses are

随机推荐

  • 从 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