JavaScript数组遍历方法
- for in: 遍历的是数组的键名,适合遍历对象
const myLifeSummedUp = ['☕', '💻', '🍷', '🍫']; for (let item in myLifeSummedUp) { console.log(item); // 0 1 2 3 }
- for of: 遍历的是数组元素值且不包括数组的原型属性method和索引name,适合遍历数组
const myLifeSummedUp = ['☕', '💻', '🍷', '🍫']; for (let item of myLifeSummedUp) { console.log(item); // "☕" "💻" "🍷" "🍫" }
- forEach:遍历数组的时候,break不能中断循环,return不能返回到外层函数
let arr = [1,2,3,4]; arr.forEach((currentValue, index, arr) => { console.log(currentValue) // 1 2 3 4 })
- map:迭代数组中的每一个元素,并根据回调函数来处理每一个元素,最后返回一个新数组,不会改变原始数组
let arr = [1,2,3,4]; let arr2 = arr.map(item =>item+1) console.log(arr2) //[2,3,4,5]
- filter:创建一个包含符合条件的元素的新的数组
let arr = [1, 2, 3, 4]; let arr2 = arr.filter(item => item > 2) console.log(arr2); // [3, 4]
- some:检测数组中的元素是否满足指定条件。依次执行数组中每个元素,如果有一个元素满足条件,则表达式返回true,剩余的元素不再进行检测。如果没有满足条件的元素,返回false。
let arr = [1, 2, 3, 4]; let arr2 = arr.some(item => item > 3 ) console.log(arr2); // true
- every:检测数组所有元素是否都符合指定条件。依次执行数组中每个元素,如果所有的元素都满足条件,则表达式返回true。如果存在没有满足条件的元素,返回false。
let arr = [1, 2, 3, 4]; let arr2 = arr.every(item => item > 3 ) console.log(arr2); // false
- reduce:接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
array.reduce(function(total, currentValue, currentIndex, arr), initialValue) // total 必需 初始值或计算结束后的返回值 // currentValue 必需 当前元素 // currentIndex 可选 当前元素的索引 // arr 可选 当前元素所属的数组对象 // initialValue 可选 传递给函数的初始值
// 求数组项之和 传入初始值0,prev初始值为0,cur为1.相加之后的返回值1作为下一轮回调的prev,再继续与下一项相加,直到完成所有数组项的和并返回 var arr = [1, 2, 3, 4] var sum = arr.reduce(function (prev, cur) { return prev + cur; },0);
- find:返回通过函数内判断的数组的第一个元素的值。当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数,如果没有符合条件的元素返回 undefined。
let arr = [1, 2, 3, 4] let findValue = arr.find((item, index) => { return item === 1; }); console.log(findValue); // 1
- findIndex:返回通过函数内判断的数组的第一个元素的位置。数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。如果没有符合条件的元素返回 -1。
let arr = [1, 2, 3, 4] let findIndex = arr.findIndex((item, index) => { return item === 1; }); console.log(findIndex); // 0
分类:
javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!