常用的遍历方法
语法
var new_array = arr.map(function callback(currentValue[, index[, array]]) {
// Return element for new_array
}[, thisArg])
参数描述
- callback
- 生成新数组元素的函数,使用三个参数:
- currentValue
callback 数组中正在处理的当前元素。 - index可选
callback 数组中正在处理的当前元素的索引。 - array可选
callback map 方法被调用的数组。
- thisArg可选
执行 callback 函数时使用的this 值。 - 返回值:一个新数组,每个元素都是回调函数的结果。
函数描述
map
方法会给原数组中的每个元素都按顺序调用一次 callback
函数。callback
每次执行后的返回值(包括 undefined ) 组合起来形成一个新数组。** callback
函数只会在有值的索引上被调用;那些从来没被赋过值或者使用 delete
删除的索引则不会被调用。**
并且不会修改原数组内的基础类型变量
以上内容来自:MDN
今天手写一下
function self_map(fn ,context){
let arr = Array.prototype.slice.call(this); // 浅拷贝
let mappedArr = [];
for (let i = 0 ; i < arr.length ; i++){
if(!arr.hasOwnProperty(i)) continue; // 是否为可读属性
mappedArr.push(fn.call(context,arr[i], i ,this)); // 调用,并且将返回值填入参数内
}
return mappedArr;
}
网友评论