JavaScript数组的迭代方法

1.forEach():对数组每一项都运行传入的函数,没有返回值,相当于for循环
例:让数组的值都乘以2

const arr=[1,2,3,4,5];
arr.forEach((item,index,arr)=>{
	//item:当前遍历数组元素的值
	//index:当前遍历数组的索引
	//arr:原数组
	item=item*2;
});
console.log(arr);//[1,2,3,4,5]

forEach()是无法改变基本数据类型数组但可以改变引用数据类型,基本数据类型在栈内存中是直接存储变量名和值,引用数据类型在栈内存存储变量名和推内存的位置。上面例子我们可以使用重新赋值可以实现

const arr=[1,2,3,4,5];
arr.forEach((item,index,arr)=>{
	//item:当前遍历数组元素的值
	//index:当前遍历数组的索引
	//arr:原数组
	arr[index]=item*2;
});
console.log(arr);//[2,4,6,8,10]

2.map():对数组的每一项都运行传入的函数,返回由每次函数调用的结果构成的的数组,不会改变原数组而是生成一个新数组
例:让数组的值都乘以2

const arr=[1,2,3,4,5];
const res=arr.map((item,index,arr)=>{
	//item:当前遍历数组元素的值
	//index:当前遍历数组的索引
	//arr:原数组
	return item*2;
});
console.log("原数组:"+arr);//[1,2,3,4,5]
console.log("新数组:"+res);//[2,4,6,8,10]

3.filter():对数组每一项都运行传入的函数,函数返回true的项会组成数组之后返回,不会改变原数组而是生成一个新数组
例:获取数组里的偶数

const arr=[1,2,3,4,5];
const res=arr.filter((item,index,arr)=>{
	//item:当前遍历数组元素的值
	//index:当前遍历数组的索引
	//arr:原数组
	return item%2==0;
});
console.log("原数组:"+arr);//[1,2,3,4,5]
console.log("新数组:"+res);//[2,4]

4.some():对数组每一项都运行传入的函数,如果有一项函数返回true,则这个方法返回true,只要数组中有一个符合要求就返回true
例:数组是否有能被5整除的值

const arr=[1,2,3,4,5];
let res=arr.some((item,index,arr)=>{
	//item:当前遍历数组元素的值
	//index:当前遍历数组的索引
	//arr:原数组
	return item%5==0;
});
console.log(res);//true

5.every():对数组每一项都运行传入的函数,如果对每一项都返回true,则这个方法返回true,数组中全部的值符合要求返回true
例:数组里的值是否都能被3整除或被2整除

const arr=[2,3,6,8,10];
let res=arr.every((item,index,arr)=>{
	//item:当前遍历数组元素的值
	//index:当前遍历数组的索引
	//arr:原数组
	return item%2==0||item%3==0;
});
console.log(res);//true

总结:以上方法都不改变调用他们的数组

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值