forEach方法中的function回调支持三个参数,第一个是遍历的数组内容,第二个是对应的数组索引,第三个是数组本身
[].forEach(function(value,index,array){
//...
});
对比jQuery的$.each()方法:
$.each([],function(index,value,array){
//...
});
注意:第一个参数和第二个参数是相反的
例子:
[1,2,3,4].forEach(console.log);
输出:1,0,[1,2,3,4]
2,1,[1,2,3,4]
3,2,[1,2,3,4]
4,3,[1,2,3,4]
map方法,表示映射数组
[].map(function(value,index,array){
//...
});
例子:
var data = [1,2,3,4];
var arrayOfSquares = data.map(function(item){
return item*item;
});
alert(arrayOfSquares);
//输出1,4,9,16
注意:callback需要有return值,如果没有,将会映射成undefined
利用map方法获取对象数组中的特定属性值,例子:
var users = [
{"name":"aa","email":"aa@email.com"},
{"name":"bb","email":"bb@email.com"},
{"name":"cc","email":"cc@email.com"},
]
var emails = users.map(function(user){
return user.email;
});
console.log(emails.join(","));
输出aa@email.com,bb@email.com,cc@email.com
filter方法筛选数组
用法和map相似,callback函数需要返回布尔值
var data = [0,1,2,3];
var arrayFilter = data.filter(function(item){
return item;
});
console.log(arrayFilter);
输出[1,2,3]
解释:因为0为false,所以被筛选了
可以将map和filter结合使用,例子:
var emailsZhang = users
.map(function(user){ return user.email; })
.filter(function(email){ return /^zhang/.test(email); });
console.log(emailsZhang.join(","));
//zhang@email.com
[].forEach(function(value,index,array){
//...
});
对比jQuery的$.each()方法:
$.each([],function(index,value,array){
//...
});
注意:第一个参数和第二个参数是相反的
例子:
[1,2,3,4].forEach(console.log);
输出:1,0,[1,2,3,4]
2,1,[1,2,3,4]
3,2,[1,2,3,4]
4,3,[1,2,3,4]
map方法,表示映射数组
[].map(function(value,index,array){
//...
});
例子:
var data = [1,2,3,4];
var arrayOfSquares = data.map(function(item){
return item*item;
});
alert(arrayOfSquares);
//输出1,4,9,16
注意:callback需要有return值,如果没有,将会映射成undefined
利用map方法获取对象数组中的特定属性值,例子:
var users = [
{"name":"aa","email":"aa@email.com"},
{"name":"bb","email":"bb@email.com"},
{"name":"cc","email":"cc@email.com"},
]
var emails = users.map(function(user){
return user.email;
});
console.log(emails.join(","));
输出aa@email.com,bb@email.com,cc@email.com
filter方法筛选数组
用法和map相似,callback函数需要返回布尔值
var data = [0,1,2,3];
var arrayFilter = data.filter(function(item){
return item;
});
console.log(arrayFilter);
输出[1,2,3]
解释:因为0为false,所以被筛选了
可以将map和filter结合使用,例子:
var emailsZhang = users
.map(function(user){ return user.email; })
.filter(function(email){ return /^zhang/.test(email); });
console.log(emailsZhang.join(","));
//zhang@email.com