JS数组中高阶遍历方法
filter()#
filter方法检查数组,删除不匹配的元素,返回一个新数组
filter方法内部传入回调函数,回调函数要求必须传入数组的value
const arr = [1,2,3,4];
let newArr = arr.filter(function(n){
return n<3;
})
console.log(newArr)
map()#
map方法遍历并处理数组中每个元素,并返回一个新数组
回调函数中传入的值为数组的value
const arr = [1,2,3,4];
let newArr = arr.map(function(n){
return n*2;
})
console.log(newArr)
forEach()#
forEach方法为数组每个元素都执行一次回调函数,将元素传递给回调函数。
forEach和map的区别是没有返回值
const arr = [1,2,3,4];
arr.forEach(function(item,index){
let newArr = index+'-'+item*2;
console.log(newArr)
})
reduce()#
reduce方法依次处理数组的每个成员,最终累计为一个值。
**建议直接用设置初始值的方法 **
1. 因为reduce方法面对空数组时需要一个初始值,
2. 如果数组内是对象,在没有初始值方法中,第一次遍历previousValue是一个成员需要计算
使用方法
该方法接收的第一个参数为函数,第二个为初始值
函数中又接收两个参数,(之前的返回值,当前值)
reduce(function(之前的返回值,当前值){},初始值)
没有初始值
函数内参数1为数组第一个成员,参数2为数组第二个成员
参数1为第一次遍历的返回值,参数2为数组依次遍历的值,直到完成
const arr = [1,2,3,4,5]
let newArr = arr.reduce(function (preValue,nowValue) {
return preValue+nowValue;
})
console.log(newArr);
设置了初始值
第一次遍历初始值与数组第一个成员
第二次遍历时参数1为返回值,参数2为数组依次遍历的值,直到完成
const arr = [1,2,3,4,5]
let newArr = arr.reduce(function (preValue,nowValue) {
return preValue+nowValue;
},10)
console.log(newArr);
find()#
find方法遍历数组,返回符合条件的子元素
内如果判断为true,则返回item。
const arr = [1,2,3,4]
let arrItem = arr.find(function(n){
return n==2;
});
console.log(arrItem);
every()#
every方法用于检测数组内所有元素是否都符合条件,返回布尔值
如果数组有一个元素不满足,则整个表达式返回 false,并剩余元素不会再检测
every不会对空数组进行检测
every不会改变原始数组
const arr = [1,2,3,4]
let isTrue = arr.every(function(n){
return n>2;
})
console.log(isTrue);
some()#
every方法用于检测数组内所有元素只要有一个符合条件,返回布尔值
如果数组的元素都不满足,则整个表达式返回 false
var arr = [1,2,3,4,5];
var newArr2 = arr.some(function(item,index){
return item == 2;
})
console.log(newArr2);
findIndex()#
var arr = [ "文翔", "文雯", "文化","文渊"]
var res = arr.findIndex(function (item, index, arr) {
return item === "文渊1"
})
console.log(res);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2019-07-30 JS代码报错 Uncaught SyntaxError: Unexpected token ,