在写一个数组查找元素的代码中使用了
Array.find() 方法
但却并没有像想象中那样当遇到符合条件的值返回这个 , 停止执行这个方法而是继续的执行下去了。

MDN--Array.prototype.find() 中的示例代码 进行 一个尝试

1.gif

这里在运行找到了符合条件的值,直接停止了查找,返回它的值。
但是当我这这个 callback 参数中写入一个 if 语句 并 只有一个 return

它就没有停止,而是继续查找

2.gif

当我 return 加上一个 值

它才会有停止查找的效果

3.gif

Reference MDN

find方法对数组中的每一项元素执行一次 callback函数,直至有一个 callback 返回true。当找到了这样一个元素后,该方法会立即返回这个元素的值,否则返回undefined。注意callback函数会为数组中的每个索引调用即从0length - 1,而不仅仅是那些被赋值的索引,这意味着对于稀疏数组来说,该方法的效率要低于那些只遍历有值的索引的方法
  • 在这个方法中 callback 必须 返回 true 才会 停止查找。
  • 这个同适于Array.findIndex()

WingDust
236 声望2 粉丝