forEach(可替代一般for循环使用)
//使用方法
let arr = ['bob','mary','kate'];
arr.forEach(function(val,index,arr){
//val--数组中的值
//index--下标
//arr--循环的数组
console.log(val,index,arr)
})
//返回结果
bob 0 [ 'bob', 'mary', 'kate' ]
mary 1 [ 'bob', 'mary', 'kate' ]
kate 2 [ 'bob', 'mary', 'kate' ]
map
//一般情况下map和forEach没多大区别
let arr = [
{name:'bob',age:11,sex:0},
{name:'kate',age:12,sex:1},
{name:'mary',age:16,sex:1},
{name:'kacy',age:10,sex:0},
{name:'lily',age:11,sex:1}
];
arr.map((val,index) => {
console.log(val,index)
})
//返回结果
{ name: 'bob', age: 11, sex: 0 } 0
{ name: 'kate', age: 12, sex: 1 } 1
{ name: 'mary', age: 16, sex: 1 } 2
{ name: 'kacy', age: 10, sex: 0 } 3
{ name: 'lily', age: 11, sex: 1 } 4
//但是map能够搭配return处理数据,并且返回新数据
let newArr = arr.map((val,index) => {
return val.name;
})
console.log(newArr)
//返回结果
[ 'bob', 'kate', 'mary', 'kacy', 'lily' ]
//即map能够直接获得return返回的结果,但是forEach不能
filter(过滤)
let arr = [
{name:'bob',age:11,sex:0},
{name:'kate',age:12,sex:1},
{name:'mary',age:16,sex:1},
{name:'kacy',age:10,sex:0},
{name:'lily',age:11,sex:1}
];
let newArr = arr.filter((val) => {
return val.sex == 1;//过滤条件
//返回条件为true的数据
})
console.log(newArr)
//返回结果
[ { name: 'kate', age: 12, sex: 1 },
{ name: 'mary', age: 16, sex: 1 },
{ name: 'lily', age: 11, sex: 1 } ]
some(类似查找功能)
let arr = ['bob','mary','kate'];
let result = arr.some((val) => {
return val == 'bob';
//只要数组中有一个满足条件的数据,就返回true
})
console.log(result)
//返回结果
true
every(和some差不多,不过是必须数组里面所有的数据都满足条件,才返回true)
let arr = [2,4,6,8,10];
let result = arr.every((val) => {
return val%2 == 0;
})
console.log(result)
//返回结果
true
共性
//第一,以上五个方法的参数都一样
//第二,可修改this指向,以forEach为案例
let arr = ['bob','mary','kate'];
arr.forEach(function(val,index){
console.log(this)
//此处this指向的是window
})
//返回结果
Window {external: Object, chrome: Object, document: document, sysTime: 1534408575, _manCard: Object…}
arr.forEach(function(val,index){
console.log(this)
},{})//该参数修改this指向对象
//返回结果
{}
{}
{}
////////但是如果使用箭头函数,就不能修改this指向,修改无效//////////
find,findIndex
arr.find(),从数组内查找指定元素,只要找到一个结果便返回,没找到返回undefined
arr.findIndex(),从数组内查找指定元素,只要找到一个结果便返回该结果的位置,没找到返回-1
let arr = [45,69,33,14,58,75];
let result = arr.find((val,index,arr) => {
return val > 50
});
console.log(result);
//返回结果
69
let arr = [45,69,33,14,58,75];
let result = arr.findIndex((val,index,arr) => {
return val > 50
});
console.log(result);
//返回结果
1
for...of和for...in
for...of用于循环数组中的value
let arr = [1,2,3,4,5];
for(let val of arr){
console.log(val);
}
//返回结果
1
2
3
4
5
for...in用于循环数组中的下标
let arr = [1,2,3,4,5];
for(let index in arr){
console.log(index);
}
//返回结果
0
1
2
3
4






网友评论