gpt4 book ai didi

javascript - 在找到的示例代码中,Array.prototype.find 的箭头函数回调中令人惊讶的语法是什么?

转载 作者:行者123 更新时间:2023-12-03 21:06:55 26 4
gpt4 key购买 nike

我找到了以下示例代码,我想弄清楚它的作用。

projects.find( p => p.value === 'jquery-ui' && ( p.desc = 'your value', true ) );
最后是什么 true来自 ( p.desc = 'your value', true )为了?我知道 find应该只返回第一个匹配的数组项,但我看到,使用提供的示例代码,它不仅找到了对象,而且还改变了它。

最佳答案

这实际上是非常糟糕的代码。 ಠ_ಠ
首先,逗号运算符评估其所有操作数并返回最后一个。即 p.desc = 'your value', true分配 'your value'p.desc并返回 true .这链接到 p.value === 'jquery-ui'检查,所以只在表达式为 true 时执行.整件事都在 find ,它遍历所有项目,直到找到回调函数返回的项目 true .
换句话说,它使用 Array.prototype.find遍历所有数组条目,并且当它找到一个其 .value 的条目时是 'jquery-ui' ,它通过设置 .desc 来更新该条目, 然后结束 find通过返回 true 进行迭代.
这实际上很聪明,但是:

  • 在纯测试回调函数和
  • 中引入副作用。
  • 导致这样的问题,因为它不必要地聪明且乍一看难以理解。
  • 关于javascript - 在找到的示例代码中,Array.prototype.find 的箭头函数回调中令人惊讶的语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66273820/

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