为什么Array.find()执行示例代码返回结果5而非首个元素12?
代码运行结果原因解析
你提供的代码如下:
const array1 = [12, 5, 8, 130, 44]; var check = array1.find((element, b) => b); console.log(check);
具体原因
该结果由Array.prototype.find()的运行规则和JS的布尔值判定规则共同导致:
Array.find()会按数组下标从0开始依次遍历元素,每轮遍历给回调传入三个参数:当前遍历元素、当前元素的下标、原数组;只要某一轮回调返回真值,find就会立即返回当前元素,终止后续遍历。- 你的代码中回调的返回值是第二个参数
b,也就是当前元素的下标:- 第一轮遍历元素
12时,下标为0,0在JS中属于假值,回调返回假,find继续遍历 - 第二轮遍历元素
5时,下标为1,1在JS中属于真值,回调返回真,find直接返回当前元素5
- 第一轮遍历元素
内容的提问来源于stack exchange,提问作者Prakhar Agarwal
相关产品推荐
相关产品推荐

