map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组
[].map(function(value, index, array) {
...
});
第一个参数,数组中当前被传递的元素
第二个参数,数组中当前被传递的元素的索引
第三个参数,调用 map 方法的数组
1.得到新的数据
var data = [1, 2, 3, 4];
var arrayOfSquares = data.map(function (item) {
return item * item;
});
alert(arrayOfSquares); // 1, 4, 9, 16
2.得到原数组部分数据
var users = [
{name: "张含韵", "email": "zhang@email.com"},
{name: "江一燕", "email": "jiang@email.com"},
{name: "李小璐", "email": "li@email.com"}
];
var emails = users.map(function (user) { return user.email; });
console.log(emails); // ["zhang@email.com", "jiang@email.com", "li@email.com"]
console.log(emails.join(',')); // zhang@email.com,jiang@email.com,li@email.com
3.Array.prototype扩展可以让IE6-IE8浏览器也支持map方法
if(typeof Array.prototype.map !="function"){
Array.prototype.map=function(fn,context){
var arr=[];
if(typeof fn==="function"){
for(var k=0,length=this.length;k<length;k++){
arr.push(fn.call(context,this[k],k,this));
}
}
return arr;
}
}
console.dir(Array);