常见的数组迭代方法有很多种,比如 some, filter, map等等,底层也都可以用for来实现,我们来康一康。
some
1 const some = (arr, fn) => { 2 for (let i = 0; i < arr.length; i++) { 3 if (fn(arr[i], i, arr)) { 4 return true 5 } 6 } 7 return false 8 }
every
1 const every = (arr, fn) => { 2 let count = 0 3 const len = arr.length 4 for (let i = 0; i < len; i++) { 5 if (fn(arr[i], i, arr)) { 6 count++ 7 } 8 } 9 return count === len 10 }
filter
1 const filter = (arr, fn) => { 2 const res = [] 3 for (let i = 0; i < arr.length; i++) { 4 if (fn(arr[i], i, arr)) { 5 res.push(arr[i]) 6 } 7 } 8 return res 9 }
find
1 const find = (arr, fn) => { 2 for (let i = 0; i < arr.length; i++) { 3 if (fn(arr[i], i, arr)) { 4 return arr[i] 5 } 6 } 7 }
map
1 const map = (arr, fn) => { 2 const res = [] 3 for (let i = 0; i < arr.length; i++) { 4 res.push(fn(arr[i])) 5 } 6 return res 7 }
持续更新中...
