map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
注意:函数的作用是对数组中的每一个元素进行处理,返回新的元素。
map是数组的方法,有一个参数,参数是一个函数,函数中有3个参数
参数1:item必须。当前元素的值
参数2:index,可选。当前元素在数组中的索引值
参数3:arr可选。当前元素属于的数组对象
array.map(function(item,index,arr){})
举个例子:
var array1 = [1, 4, 9, 16];
const map1 = array1.map(x => x * 2);
console.log(map1);
打印的结果为:
> Array [2,8,18,32]
但是
var array1 = [1, 4, 9, 16];
const map1 = array1.map(x => {
if (x == 4) {
return x * 2;
}
});
console.log(map1);
打印的结果是:
> Array [undefined, 8, undefined, undefined]
为什么结果会是这样呢?
会出现undefined,是因为map()方法创建了一个新数组,但新数组并不是在遍历完array1后才被赋值的,而是每遍历一次就得到一个值
var array1 = [1, 4, 9, 16];
const map1 = array1.map(x => {
if (x == 4) {
return x * 2;
}
return x;
});
console.log(map1);
打印的结果是:
> Array [1, 8, 9, 16]