一、实现map方法,map会返回一个新的数组
Array.prototype.myMap = function (callback) {
if (typeof callback !== 'function' || Array.isArray(this) || !this.length) {
throw new TypeError('报错了');
}
let res = []
for (let i=0; i < this.length; i++) {
res.push(callback(this[i], i, this))
}
return res
}
二、实现foreach
Array.prototype.myForeach = function (callback) {
if (typeof callback !== 'function' || Array.isArray(this) || !this.length) {
throw new TypeError('报错了');
}
for (let i=0; i < this.length; i++) {
callback(this[i], i, this)
}
}
三、实现filter
Array.prototype.myFilter = function (callback) {
if (!callback || typeof callback !== 'function' || !this.length) {
return []
}
let res = []
for (let i=0; i < this.length; i++) {
let elment =this[i]
if (callback(elment, i, this)) {
res.push(elment)
}
}
return res
}
四、实现find
Array.prototype.myFind = function (callback) {
if (!callback || typeof callback !== 'function' || !this.length) {
return []
}
for (let i=0; i < this.length; i++) {
if (callback(elment, i, this)) {
return elment
}
}
return undefined
}
五、实现findIndex
Array.prototype.myFindIndex = function (callback) {
if (!callback || typeof callback !== 'function' || !this.length) {
return []
}
for (let i=0; i < this.length; i++) {
if (callback(elment, i, this)) {
return i
}
}
return -1
}