数组迭代

数组法代是一件很重要的操作,在 ECMAScript 5 之前主要使用 for 语句实现,这种方式不是很方便, 为此 ECMAScript 5 新增了 5 个与迭代相关的方法。

1.forEach:为数组中的每个元素调用定义的回调函数。

2.every:检查定义的回调函数如果每一项都返回true,则返回 true。

3.some:检查定义的回调函数如果任意一项返回true。返回 true。

4.map:对数组的每个元素调用定义的回调函数,并返回包含结果的数组。

5.filter:对数组的每个元素调用定义的回调函数,并返回回调函数为其返回 true 的值的数组。 具体说明如下。

forEach

1
2
3
4
5
6
7
8
9
10
11
12
13
//forEach中可选参数thisArg可以为函数指定this指向,忽略则指向window。(箭头函数无效,仅普通函数)
let thisArg = {
name: '熊猫',
age: 21,
sex: '女'
}
let arr = [1, 2, 3];
arr.forEach(function(value, index, array){
console.log(this) //{name: '熊猫', age: 21, sex: '女'}
console.log(value) //123
console.log(index) //012
console.log(array) //1,2,3
},thisArg);

every

1
2
3
4
let arr = [1, 2, 3];
console.log(arr.every(function(value, index, array){
return value > 2;
})) //false

some

1
2
3
4
let arr = [1,2,3];
console.log(arr.some(function(value, index, array){
return value > 2;
})) //true

map

1
2
3
4
5
let arr = [1, 2, 3];
arr = arr.map(function(value, index, array){
return value + 1;
});
console.log(arr); //2,3,4

filter

1
2
3
4
5
var arr = [5, "element", 10, "the", true];
var result = arr.filter(function(value, index, array){
return (typeof value === 'string');
});
document.write(result); //返回值:["element", "the"]

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×