如何使用 ES6 Fat Arrow .filter() 对象数组

2024-03-19

我正在尝试使用 ES6 箭头函数.filter返回成人(杰克和吉尔)。看来我不能使用 if 语句。

为了在 ES6 中执行此操作,我需要了解什么?

var family = [{"name":"Jack",  "age": 26},
              {"name":"Jill",  "age": 22},
              {"name":"James", "age": 5 },
              {"name":"Jenny", "age": 2 }];

let adults = family.filter(person => if (person.age > 18) person); // throws error

(8:37) SyntaxError: unknown: Unexpected token (8:37)
|let adults = family.filter(person => if (person.age > 18) person);

我的 ES5 工作示例:

let adults2 = family.filter(function (person) {
  if (person.age > 18) { return person; }
});

看来我不能使用 if 语句。

箭头函数允许使用表达 or a block作为他们的身体。传递一个表达式

foo => bar

相当于下面的块

foo => { return bar; }

然而,

if (person.age > 18) person

不是一个表达式,if是一个声明。因此,如果您想使用,则必须使用块if在箭头函数中:

foo => {  if (person.age > 18) return person; }

虽然这在技术上解决了问题,但这是一个令人困惑的使用.filter,因为它表明您必须返回应包含在输出数组中的值。但是,回调传递给.filter应该返回一个Boolean, i.e. true or false,指示该元素是否应包含在新数组中。

所以你需要的是

family.filter(person => person.age > 18);

In ES5:

family.filter(function (person) {
  return person.age > 18;
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 ES6 Fat Arrow .filter() 对象数组 的相关文章

随机推荐

  • 如何解释 EL 表达式中方括号 ([]) 运算符的用法

    当我阅读时春天宠物诊所 https github com SpringSource spring petclinic 示例应用程序 我发现他们总是把add and modify功能集成到单个 JSP 文件中 并且它们使用 owner new
  • 在 C# 中将 LDAP AccountExpires 转换为 DateTime

    我想将 LDAP AccountExpires 中的 18 位数字字符串转换为正常日期时间格式 129508380000000000 gt gt 2011年5月26日 我通过使用以下链接获得了上述转换 http www chrisnowel
  • Admob 插页式广告显示为黑色,并带有新的广告单元 ID

    我创建了一个应用程序 并且正在使用 admob 插页式广告 由于我已为该应用程序创建了新的插页式广告单元 ID 但广告显示为黑色并带有关闭按钮 但如果我使用旧的应用程序 广告单元 ID 广告将会显示 我不知道为什么会出现这个问题 谢谢 对于
  • 泛型地狱:hamcrest 匹配器作为方法参数

    因此 让我们有一个字符串列表和一个函数 该函数采用 Hamcrest 匹配器并返回matches 提供的匹配器的方法 public boolean matchIt final Matcher
  • 如何在 Notepad++ 中多行“在文件中替换...”

    如果有免费的源代码编辑器记事本 http notepad plus sourceforge net uk about php具有 在文件中查找 功能 即无需在编辑器中打开文件 它是否也具有 在文件中替换 功能 Notepad 是基于Note
  • 如何从 PhantomJS 或 grover 跳过代码执行

    接下来的问题是 我的应用程序中有 JavaScript 代码 我想跳过 隐藏 PhantomJS 和 grover 检查 执行中的一些代码 So 如何跳过 隐藏 PhantomJS 或 grover 的代码执行 注意 当我编写 JavaSc
  • 无法定义使用动态的类或成员,因为编译器需要类型

    我在 Asp Net 3 5 应用程序中使用 Facebook SDK C 库 当我尝试编译下面的代码时 请给我错误 据我所知 动态类型在 4 0 框架中使用 那么无论如何要重写它才能使其工作吗 我有一个对 System Core 3 5
  • 单值上下文中的多个值

    由于 Go 中的错误处理 我经常会得到多个值函数 到目前为止 我管理此问题的方式非常混乱 我正在寻找最佳实践来编写更清晰的代码 假设我有以下功能 type Item struct Value int Name string func Get
  • awk gzip 输出到多个文件

    我可以像这样 gzip awk 输出 echo col1 col2 awk print 1 gzip gt out 但是是否也可以将两个 awk 输出文件流通过管道传输到 gzip 这不起作用 echo col1 col2 awk prin
  • 有没有办法获取Bitmap的存储大小?

    在我的应用程序中 我正在下载一些图像 我想知道是否有任何方法可以获得我下载的位图的大小 这是一个简单的问题 但我似乎无法通过谷歌找到解决方案 这是下载代码 Bitmap b BitmapFactory decodeStream InputS
  • Python 中的肥皂调用

    我试着打电话给肥皂服务公司 我的调用成功 但返回空值 下面我附上了我的肥皂请求和响应架构 它接受一维数组作为输入并返回该数组 请求架构
  • 如何为 HTTPS 调用指定出站证书别名?

    我正在调用需要客户端证书身份验证的 Web 服务 如果我指定一个包含单个证书 服务期望的客户端证书 的 Java 密钥库 那么一切都会正常工作 但是 如果我使用包含多个证书的密钥库 那么我似乎无法指定客户端应选择哪个证书 客户端似乎会选择第
  • 托管调试助手“FatalExecutionEngineError”0xc0000005

    托管调试助手 FatalExecutionEngineError 运行时 遇到了致命错误 错误的地址是 0x641ad419 在线程 0x5d0c 上 错误代码为0xc0000005 这个错误 可能是 CLR 或不安全或不可验证部分的错误
  • 更新 UI5 中的模型,使用格式化程序时双向数据绑定变为单向数据绑定

    在我的 UI5 应用程序中 我有一个表 其中每行包含一个sap m Switch https sapui5 hana ondemand com api sap m Switch 它通过以下方式绑定到模型formatter https sap
  • HttpUrlConnection getOutputStream 有问题

    我制作了一个android应用程序并用于HttpUrlConnection POST 方法 HoloEverywhere 库 但我有问题 为什么会出现我不知道的问题 我认为 getOutputStream 错误 因为如果用于 getOutp
  • Pandas 稀疏数据导出到 csv - 速度解释

    我正在尝试导出由类型列组成的 Pandas 数据框的子集pd SparseDtype float32 np nan 到 csv 我注意到直接写入 csv 与使用sparse to dense 然后写入csv 谁能向我解释一下这是怎么回事 一
  • Perl/regex 删除字符串的前 3 行和后 3 行

    我正在寻找构建一个正则表达式语句以始终删除前 3 个 字符串的行 以及字符串的最后 3 行 中间部分 可以是任意 n 行内容 任何干净的正则表达式方式来实现 这个输出 即总是删除我们的前 3 行和最后 3 行 字符串 并保留中间部分 这可以
  • dos2unix:找到二进制符号,跳过二进制文件

    我当前遇到一个问题 当尝试对文件执行 dos2unix 命令时 我的脚本失败 这就是我在脚本中的内容 dos2unix n data file data tmp file dos2unix Binary symbol found at li
  • 提示用户输入汇编 ci20 seg 错误

    我目前正在 ci20 机器上开发一个小程序 提示用户输入整数值 然后将该值打印到屏幕上 我当前的代码 data prompt asciiz Please enter an integer message asciiz nValue ente
  • 如何使用 ES6 Fat Arrow .filter() 对象数组

    我正在尝试使用 ES6 箭头函数 filter返回成人 杰克和吉尔 看来我不能使用 if 语句 为了在 ES6 中执行此操作 我需要了解什么 var family name Jack age 26 name Jill age 22 name