ArrayEach实现循环 🔗
用while
中的break
实现原来Array.prototype.forEach
未实现的打断功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| function arrayEach(array, iteratee) {
// 从左往右
let index = -1
const length = array.length
// 从右往做, 换个思路
/**
* let length = array == null ? 0 : array.length
*
* while(length--) {
* if(iteratee(array[length], index, array) === false) ...
* }
*/
while (++index < length) {
if (iteratee(array[index], index, array) === false) {
break
}
}
return array
}
|
1
2
3
4
5
6
7
8
9
10
11
| let a = [1,2,3,4]
arrayEach(a, (item) => {
console.log(item)
return item < 2
}) // 1、2
a.forEach(item => {
console.log(item)
return item > 1
}) // 1、2、3、4
|