map
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 方法不会对空数组进行检测。
注意: map() 方法不会改变原始数组。
/**
* map
*/
Array.prototype.map = function (fn) {
if (typeof fn !== "function") {
throw new TypeError(`${
fn} is not a function`)
}
let newArr = []
for (let i = 0; i < this.length; i++) {
newArr.push(fn(this[i]))
}
return newArr
}
filter
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 方法不会对空数组进行检测。
注意: filter() 方法不会改变原始数组。
/**
* filter
*/
Array.prototype.filter = function (fn) {
if (typeof fn !== "function") {
throw new TypeError(`${
fn} is not a function`)
}
let newArr = []
for (let i = 0; i < this.length; i++) {
fn(this[i]) && newArr.push(this[i])
}
return newArr
}
slice
slice() 方法可从已有的数组中返回选定的元素。
slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
注意: slice() 方法不会改变原始数组。