在大前端领域上,有了前端分离后,使用接口调用数据的情况下,少不了对数组的处理,今天为大家带来js数组中最常见几种处理方式

forEach()

 用法:用于调用数组的每个元素,并将元素传递给回调函数。

let ages = [22, 33, 16, 40];
(function myFunction() {
	ages.forEach(function(item,index,array){
		array[index] = item * 2
	})
	console.log(ages) //[44, 66, 32, 80]
})()复制代码

map()

用法:返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,按照原始数组元素顺序依次处理元素。

let ages = [22, 33, 16, 40];
(function myFunction() {
	let map = ages.map(function(item,index,array){
		return item * 2
	})
	console.log(map)
})()复制代码

map与forEach的区别:

相同点:都是遍历数组的每一项,也都支持三个参数,分别是item(每一项),index(索引值),array(原数组)。什么需求就用哪个参数。

不同点:foreach调用每一个项,再将值传回给回调函数,没有return。map方法在设定好条件后,会返回一个新的数组。

filter()

用法:创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

优势:不会改变原始数组。

let ages = [22, 33, 16, 40];
(function myFunction() {
	const a = ages.filter(function(item){
		return item > 25
	});
        console.log(a) //[33,40]
})()复制代码

some()

用法:检测数组中的元素某一项是否满足指定条件,return一个布尔值,满足即是true,否则为false。

let ages = [22, 33, 16, 40];
(function myFunction() {
    let isSome = ages.some(function(item,index,array){
	return item > 35
    })
    console.log(isSome) //true
})()	
复制代码

every()

用法和some()非常相似,都可支持三个参数,

let ages = [22, 33, 16, 40];
(function myFunction() {
	let isSome = ages.every(function(item,index,array){
		return item > 35
	})
	console.log(isSome)
})()复制代码

some()和every()的不同点:

some()方法遍历数组,当数组的其中一项满足条件,即返回true,则返回false。

every()方法遍历数组,当数组的每一项都满足条件,才返回true,不全部为true为false。

For循环

最后讲讲最最常见的for循环吧,在for里定义这个a还是建议用let,用var会使内存泄露。

for循环多次遍历代码块,当条件不成立,停止继续循环,可与原文第一个Foreach进行对比。

let ages = [22, 33, 16, 40];
	(function myFunction() {
		for(let a = 0;a < ages.length;a++){
			console.log(ages[a])
	}
})()复制代码