废话不多说,直接上代码!
Array.prototype.map = function (callback, thisArg) {
if (this == null) {
throw new TypeError("this is null or not defined");
}
if (typeof callback !== "function") {
throw new TypeError(callback + " is not a function");
}
const length = this.length;
let i = 0;
let result = [];
while (i < length) {
result[i] = callback.call(thisArg, this[i], i, this);
i++;
}
return result;
};
Array.prototype.map = function (callback, thisArg) {
if (this == null) {
throw new TypeError("this is null or not defined");
}
if (typeof callback !== "function") {
throw new TypeError(callback + " is not a function");
}
return this.reduce((acc, cur, index, array) => {
const res = callback.call(thisArg, cur, index, array);
acc.push(res);
return acc;
}, []);
};