概述
map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组,map 不修改调用它的原数组本身
语法
array.map(callback[, thisArg])
注意
使用 map 方法处理数组时,数组元素的范围是在 callback 方法第一次调用之前就已经确定了。在 map 方法执行的过程中:原数组中新增加的元素将不会被 callback 访问到;若已经存在的元素被改变或删除了,则它们的传递到 callback 的值是 map 方法遍历到它们的那一时刻的值;而被删除的元素将不会被访问到。
var animals = [
{name: 'Fluffykins', species: 'rabbit'},
{name: 'Caro', species: 'dog'},
{name: 'Hamilton', species: 'dog'},
{name: 'Harold', species: 'fish'},
{name: 'Ursula', species: 'cat'},
{name: 'Jimmy', species: 'fish'}
];
// 提取出animals中的全部name
// 使用for循环编写
var names = [];
for(var i = 0; i < animals.length; i++) {
names.push(animals[i].name);
}
// 使用map重写
var names = animals.map(function(animal){
return animal.name;
});
// 使用es6重写
var names = animals.map((animal) => animal.name);
console.log(names);
// 输出如下:
// [ 'Fluffykins', 'Caro', 'Hamilton', 'Harold', 'Ursula', 'Jimmy' ]