1、map
概念:
map()
方法定义在JavaScript的Array
中,它返回一个新的数组,新返回数组中的每个元素为原始数组的每一个元素分别调用map中的回调函数处理后的值。
map()
不会对空数组进行检测map()
不会改变原始数组(返回新数组)map()
不会为数组中缺少的元素调用回调函数- 除数组对象外,
map()
可由具有length属性且具有已按数字编制索引名的任何对象使用(如字符串对象)
在实际应用场景中,在便利出的数据需要处理的时候用到map比较多一些,例如商品列表数据回来之后进行展示需要进行另外的操作时,如此不会改变原数组,便可实现效果
语法:
array.map(function(currentValue, index, arr), thisIndex)
例子:
var array1 = [1, 4, 9, 16];
const map1 = array1.map(x => {
if (x == 4) {
return x * 2;
}
});
console.log(map1); //[undefined, 8, undefined, undefined]
出现三个undefined而不是预期的[1,8,9,16]
这样写只是增加了一个条件,即x的值为4时才乘以2,之所以会出现undefined,是因为map()方法创建了一个新数组,但新数组并不是在遍历完array1后才被赋值的,而是每遍历一次就得到一个值。所以,下面这样修改后就正确了
var array1 = [1, 4, 9, 16];
const map1 = array1.map(x => {
if (x == 4) {
return x * 2;
}
return x;
})