如果我不打算返回任何内容,我应该使用像map和filter这样的数组方法吗?

2023-12-08

去年我一直在使用数组方法,例如map and filter更常见的是代替数组上的标准 for 循环。它感觉更容易阅读和编写,并且可以完成我最有可能要做的所有事情,例如创建局部变量。

但很多时候我不会返回任何东西。不过埃斯林特不太喜欢我。据他们说,他们说你总是需要回报,否则就“可能是一个错误” https://eslint.org/docs/rules/array-callback-return

Why?只是好的做法吗?无返回数组方法有哪些缺点?

考虑这个问题有一段时间了。任何见解或想法都会很棒。


如果我不打算返回任何内容,我应该使用像map和filter这样的数组方法吗?

不,你不应该。

为什么?只是好的做法吗?

是的。对于您正在执行的迭代类型,使用适当的迭代方法是一个很好的做法。有多种方法可以出于某种原因进行迭代。选择适当的机制。

无返回数组方法有哪些缺点?

Using .map() and .filter()没有从回调中实际返回任何内容有以下缺点:

  1. 您的代码具有误导性。要点是.map() and .filter()就是迭代数组并产生一个新数组。当开发人员阅读一些代码并看到.map() or .filter()在使用时,他们期望应该有一个返回的数组。当他们没有看到这样做时,他们会感到困惑,最初会觉得他们不理解代码。如果我对这样的代码进行代码审查,我不会批准这样的代码。

  2. 您的代码不必要地创建了未使用的对象。这只是浪费而且不是一个好的做法。相反,使用不会产生输出数组的迭代方法,例如for/of, 一个常规的for循环或.forEach().

  3. 你的代码不会起毛。Linters 提供对事物的反对是有原因的。使用.map() or .filter()不从回调中返回任何内容,就像 linter 所说的那样,“可能是一个编程错误”,因为这不是这些函数的设计使用方式,并且当您不想要返回的数组时,有适当的替代方案。

因此,如果您只是尝试进行迭代而不创建任何结果数组,请使用for/of or .forEach()或某些其他迭代方案,并非专门设计用于创建您不想要的输出数组。

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

如果我不打算返回任何内容,我应该使用像map和filter这样的数组方法吗? 的相关文章

随机推荐

  • 美国网站的信用卡收单和贝宝解决方案

    我计划建立一个仅在美国接受收费的网站 是否有任何信用卡收单软件可以轻松地由 C ASP NET 网站实现 有人可以推荐一些吗 在数据库中保存 加密信用卡数据有什么规则吗 任何帮助都会很棒 正如 Albireo 所指出的 您不想将信用卡存储在
  • 如何给 dplyr 一个 SQL 查询并让它返回一个远程 tbl 对象?

    假设我有一个使用 dbplyr 打开的远程 tbl 并且我想对其使用 SQL 查询 可能是因为没有 dbplyr 翻译来实现我想要做的事情 我该如何给它返回一个远程 tbl 对象 The DBI dbGetQuery 函数允许您向 db 发
  • Java:JRadioButton 上的 ActionEvent 和 ItemEvent 有什么区别?

    释放鼠标按钮后 它们都会升起一次 并且都可以获取 JRadioButton 上的所有可用信息 对吧 有什么区别吗 An ItemListener当按钮的状态发生变化时 无论是通过用户与按钮交互还是以编程方式 通过setSelected方法
  • 从 Ubuntu 中完全卸载 PHP [关闭]

    Closed 这个问题是无关 目前不接受答案 有人可以告诉我如何从 Ubuntu 中完全卸载 PHP 吗 因此 我在安装 MySql 时遇到问题 似乎存在一些未满足的依赖关系 我想我搞砸了整个安装过程 有人可以帮我解决这个问题吗 这不是一个
  • ExifInterface 和 VM 中止发生奇怪的致命崩溃

    我在使用 ExifInterface 时遇到了奇怪的致命崩溃 导致崩溃的行是这样的 非常简单 Foto java 341 ExifInterface exif new ExifInterface filename 我只看到一些图片就崩溃了
  • 用户友好的 URL 而不是查询字符串? [复制]

    这个问题在这里已经有答案了 可能的重复 在 php 中使用 seo 用户友好 codeigniter 中的自定义路由 我正在开发一个 CMS 我想使用用户友好的 URL 而不是查询字符串 e g mysite com cat 1 gt my
  • 多个模型之间的多对多字段关系

    我有以下代表书籍和作者的模型 一本书可以有多个作者 一个作者可以写多本书 所以我使用 Django 的ManyToManyField键入以将两个模型相互链接 我可以添加一个Book 也许使用 Django Admin 并创建一个Author
  • 如何在 Swift 中创建二维数组?

    你好 我是 Swift 新手 我正在尝试将经度和纬度以及地名从地图的坐标对象保存到多维数组 即 谁能帮我如何动态创建这些 var pinArray 0 Lat 51 130231 var pinArray 0 Lon 0 189201 va
  • 通过 BLE 传输大数据块的最佳方法

    我是 BLE 的新手 希望您能够指出我正确的实施方法 我正在开发一个应用程序 其中外围 电池供电 设备不断聚合传感器读数 在移动端应用程序上会有一个 同步 按钮 按下按钮后 我想将外围设备中积累的所有传感器读数传输到移动应用程序 同步之间的
  • 具有 X.509 证书的 Spring Security

    我正在慢慢地疯狂尝试配置 Spring Security 3 0 0 以保护应用程序 我已将服务器 码头 配置为需要客户端身份验证 使用智能卡 但是 我似乎无法正确获取 applicationContext security xml 和 U
  • new Date("YYYY/MM") 不适用于 IE 11

    在我的项目中 我使用下面的js代码来获取日期 仅输入日期年和月 var current time new Date current 当前数据是这样的 2017 04 它在 chrome 上工作得很好 但在 IE 11 上 我得到了 curr
  • 按 2d 张量中的值索引 pytorch 4d 张量

    我有两个 pytorch 张量 X有形状 A B C D I有形状 A B 值在I是范围内的整数 0 C 获得张量最有效的方法是什么Y有形状 A B D 这样 Y i j k X i j I i j k 您可能想使用torch gather
  • Active Directory 搜索 - 按经理过滤

    我正在尝试从 Active Directory 获取具有指定管理员的用户列表 我使用以下 LDAP 过滤器但没有成功 manager CN Misterboss n 但是 它不返回任何结果 用户在 manager 属性中具有以下值 CN M
  • iPhone SDK 非原子和原子

    非常快速和简单的问题 在 Objective C 中 非原子和原子之间有什么区别 就像声明 property 非原子 保留 id 对象 这样的属性时 非原子保留 getter 和 setter 的代码在概念上类似于 id foo retur
  • 可以在单个 Windows 服务中托管多个 WCF 进程吗?

    我有一个托管在 Windows 服务中的 WCF 进程 我想知道是否可以安全地让多个 WCF 进程在同一个 Windows 服务中托管执行不同的操作 我需要担心端口吗 我正在使用 mex 端点 编辑 所以似乎正在修剪我冗长的代码 配置示例
  • 从 HList 中提取 FieldType 键和值

    我想提取一个头部的键和值HList使用这两种方法 def getFieldName K V value FieldType K V implicit witness Witness Aux K K witness value def get
  • 子集总和查找所有子集之和等于一个数字

    我一直在学习动态规划 我想通过打印出所有加起来等于一个数字的子集来进一步解决经典的子集和问题 我到底该怎么做呢 到目前为止 我知道如何根据是否存在相加的子集来打印 true 或 false public static boolean has
  • 解决包冲突

    假设我们有一个名为com example1含有一个Hello类 以及其他类 然后我们还有另一个包com example2还含有一个Hello类 显然具有不同的行为 现在假设我们需要 com example1 中的每个类和 com examp
  • 可以先为 ASP.Net 或 ASP.Net MVC 站点创建 HTML 吗?

    首先为 ASP Net 或 ASP Net MVC 站点编码 HTML 然后将其交给编码人员 这样可行吗 如果没有 整合这些的最佳方法是什么 这是绝对可以接受的 这是 MVC 的伟大之处之一 创建您的 HTML 和 CSS 让开发人员在动态
  • 如果我不打算返回任何内容,我应该使用像map和filter这样的数组方法吗?

    去年我一直在使用数组方法 例如map and filter更常见的是代替数组上的标准 for 循环 它感觉更容易阅读和编写 并且可以完成我最有可能要做的所有事情 例如创建局部变量 但很多时候我不会返回任何东西 不过埃斯林特不太喜欢我 据他们