迭代:循环、遍历
IE8及以下不支持
forEach没有返回返回值
map、filter返回数组
every、some返回布尔值
// 数组.forEach(function (item, index, array) { });
// 接收一个函数做为参数,该函数有三个参数,分别为数组项,下标,数组本身
// 作用:循环数组(没有返回值),代替for循环
var arr = ['a', 'b', 'c'];
arr.forEach(function (item, index, array) {
console.log(item, index, array);
});
// 数组.map(function (item, index, array) { });
// 接收一个函数做为参数,该函数有三个参数,分别为数组项,下标,数组本身
// 作用:循环数组,返回每次函数调用的结果组成的一个新数组
var arr = [4, 2, 6];
var a = arr.map(function (item, index, array) {
return item * 2;
});
console.log(a); // [8, 4, 12]
// 数组.filter(function (item, index, array) { });
// 接收一个函数做为参数,该函数有三个参数,分别为数组项,下标,数组本身
// 作用:循环数组,返回每次函数调用的结果为true的项组成的一个新数组
var arr = [4, 8, 2, 6];
var a = arr.filter(function (item) {
return item > 5;
});
console.log(a);
// 数组.every(function (item, index, array) { });
// 接收一个函数做为参数,该函数有三个参数,分别为数组项,下标,数组本身
// 作用:循环数组,如果每次函数调用结果都为true,则返回true
var arr = [4, 8, 2, 6];
var a = arr.every(function (item, index, array) {
return item > 5;
});
console.log(a);
// 数组.some(function (item, index, array) { });
// 接收一个函数做为参数,该函数有三个参数,分别为数组项,下标,数组本身
// 作用:循环数组,函数调用只要有一个为true,则结果为true
var arr = [4, 8, 2, 6];
var a = arr.some(function (item, index, array) {
return item > 10;
});
console.log(a);
// 数组.find(function (item, index, array){});
// 循环数组,调用函数,如果这个函数返回true,则把对应的item返回,否则返回undefined
// 返回的是满足条件的这一项
var arr = [3, 4, 3, 2, 3, 2, 3, 3];
var a = arr.find(function (item, index, array) {
// console.log(item, index, array);
return item === '3';
});
console.log(a);
var arr = [
{ name: 'zs', password: 1234 },
{ name: 'ls', password: 4545 },
{ name: 'ww', password: 77 },
{ name: '小王', password: 3333 },
{ name: '小李', password: 8998 }
];
var o = arr.find(function (item, index, array) {
return item.name == 'ww' && item.password == 77
})
console.log(o);
// 数组.findIndex(function (item, index, array){});
// 调用函数,如果这个函数返回true,则把对应的item的下标返回,否则返回-1
// 返回的是满足条件的下标
var o = arr.findIndex(function (item, index, array) {
return item.name == '小王' && item.password == 3333;
});
console.log(o);