数组的迭代

192 阅读2分钟

数组的五种迭代

1.forEach()

forEach() 是多数组中的每一项运行给定函数,这个方法没有返回值。它只是对数组中的每一项运行传入的函数,没有返回值。本质上与使用for循环迭代数组一样。

var arr=[1,2,3,4,5];
arr.forEach(function(value,index){
    console.log(index+'  'value);
})
//输出
0  1
1  2
2  3
3  4
4  5

2.map()

map()是对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。这个数组的每一项都是在原始数据中的对应项上运行传入函数的结果,不改变原数组,得到一个新的数组。

var numbers = [1, 2, 3, 4, 5];
var newNumbers = numbers.map(function (item) {
	    return item + 1;
})
console.log(numbers); //1,2,3,4,5
console.log(newNumbers);2,3,4,5,6

3.filter()

filter()是对数组中的每一项运行给定函数,返回该函数返回true的项所组成的数组。它利用指定的函数确定是否在返回的数组中包含某一项,不改变原数组,得到一个新的数组。

var numbers = [1, 2, 3, 4, 5];
var newNumbers = numbers.filter(function (item) {
		return item > 3;
})
console.log(numbers);  //1,2,3,4,5
console.log(newNumbers);  //4,5

4.every()

every()是对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。

返回false结果
var numbers = [1, 2, 3, 4, 5];
var newNumbers = numbers.every(function (item) {
	return item > 3;
})
console.log(numbers);  //1,2,3,4,5
console.log(newNumbers);  //false

返回true结果
var numbers = [1, 2, 3, 4, 5];
var newNumbers = numbers.every(function (item) {
	return item > 0;
})
console.log(numbers);  //1,2,3,4,5
console.log(newNumbers);  //true

5.some()

some()是对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。

返回false结果
var numbers = [1, 2, 3, 4, 5];
var newNumbers = numbers.some(function (item) {
	return item > 6;
})
console.log(numbers);  //1,2,3,4,5
console.log(newNumbers);  //false

返回true结果
var numbers = [1, 2, 3, 4, 5];
var newNumbers = numbers.some(function (item) {
	return item > 4;
})
console.log(numbers);  //1,2,3,4,5
console.log(newNumbers);  //true