ES5新增的数组方法

forEach()
  • forEach() 方法用于调用数组的每个元素并将元素传递给回调函数。但是本身没有返回值,回调函数能够对原数组进行改变

这是标准的改变原数组的方法,这里的a也可以用数组名arr,也可以用变量a,都是一个意思.

var arr = [1,2,3,4]
arr.forEach(function(item,index,a)
	{
    	a[index] = item *10;		
	}
)

发现num与item其实是一个变量类型,所以他的变量类型定义是由位置来决定的,从左到右分别为数据,下标,数组

var arr = [1,2,3,4]
arr.forEach(function(num, index)
	{
	 	arr[index] = num * 2;
	}
);

这是一个不改变原数组,但是编辑其内容并执行的方法,强调一下forEach()函数不会有返回值,他就是个直接运行的函数,所以里面发生的一切都是不需要return的.
实际上这第三个例子才是forEach应该做的事情,因为它实在是太慢了

var arr = [1,2,3,4]
var sum = 0
arr.forEach(function(item,index,a)
	{
    	sum += item		
	}
)

map()
  • map()在功能上跟forEach()相似,它会返回一个新的数组,并且执行速度会快一点.

  1. 与forEach一样,可以自命名变量,但是顺序不能有误
  2. 返回一个新函数,所以函数最后一定要有return,并把它作为核心逻辑代码(当然也可以使用=>符号进行简化书写)
 let doubled = arr.map(function(num) {
         return num * 2;
});
console.log(doubled);
var arr = [1,2,3,4]
var ress = arr.map(function(item,index,a)
	{
	      return item + "***"
	       console.log(item)
	}
 )
console.log(ress)

甚至可以与其他属性如filter过滤属性连用,玩花样

var arr = [1,2,3,4]
var arr2 = arr.map(num => num * 2).filter(num => num > 5);
console.log(arr2)

filter()

过滤,使用方法与以上类似,用于在一定条件的下筛选数据.与map方法一样会返回一个新的数组

function fun(n){
		return n % 2 === 0
}
var res = arr.filter(fun)
some()

查数组中是否满足函数指定条件,只要有一个数据满足条件则返回true

function fun(n){
		return n % 2 === 0
}
var res = arr.some(fun)
every()

查数组中是否满足函数指定条件,必须全部满足才返回true

function fun(n){
		return n % 2 === 0
}
var res = arr.every(fun)

其实都一样的,只不过返回值不一样


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值