gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 17:31:58 28 4
gpt4 key购买 nike

去年,我更频繁地使用 mapfilter 等数组方法,而不是数组上的标准 for 循环。它感觉更容易阅读和编写,并且可以完成我最有可能要做的所有事情,例如创建局部变量。

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

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

这个问题我已经思考了一段时间。任何见解或想法都会很棒。

最佳答案

Should I use array methods like map and filter, if I'm not going to return anything?

不,你不应该。

Why? Is just good practice?

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

What are downsides of a return-less array method?

使用.map().filter()而不实际从回调中返回任何内容有以下缺点:

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

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

  3. 您的代码不会出现 lint。 Linters 提供对事物的反对是有原因的。使用 .map().filter() 而不从回调返回任何内容,正如 linter 所说,“可能是一个编程错误”,因为这不是那些函数被设计为可以使用,当您不需要返回的数组时,有适当的替代方法。

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

关于javascript - 如果我不打算返回任何内容,我应该使用像map和filter这样的数组方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50140014/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com