重写数组拓展方法

复制代码
forEach
Array.prototype.myforEach function (fn) {
    var arr = this,
        length = arr.length,
        newThis = arguments[1] || global;
    for (var index = 0; index < length; index++) {
        fn.apply(newThis, [arr[index], index, arr])
    }

}
map Array.prototype.myMap 
function (fn) {     var arr = this,         length = arr.length,         newThis = arguments[1] || global;     newArr = [];     for (var index = 0; index < length; index++) {         newArr.push(fn.apply(newThis, [arr[index], index, arr]))     }     return newArr }
filter Array.prototype.myFilter 
function (fn) {     var arr = this,         length = arr.length,         newThis = arguments[1] || global,         newArr = [];     for (var index = 0; index < length; index++) {         fn.apply(newThis, [arr[index], index, arr]) ? newArr.push(arr[index]) : null     }     return newArr }
every Array.prototype.myEvery 
function (fn) {     var arr = this,         length = arr.length,         newThis = arguments[1] || global;     for (var index = 0; index < length; index++) {         if (!fn.apply(newThis, [arr[index], index, arr])) {             return false         }     }     return true }
some Array.prototype.mySome 
function (fn) {     var arr = this,         length = arr.length,         newThis = arguments[1] || global;     for (var index = 0; index < length; index++) {         if (fn.apply(newThis, [arr[index], index, arr])) {             return true         }     }     return false }
reduce Array.prototype.myReduce 
function (fn, initValue) {     var arr = this,         length = arr.length,         newThis = arguments[2] || global;     for (var index = 0; index < length; index++) {         initValue = fn.apply(newThis, [initValue, arr[index], index, arr])     }     return initValue }
reduceRight Array.prototype.myReduceRight 
function (fn, initValue) {     var arr = this,         length = arr.length,         newThis = arguments[2] || global;     for (var index = length; index--;) {         initValue = fn.apply(newThis, [initValue, arr[index], index, arr])     }     return initValue }
复制代码

 

posted on   sss大辉  阅读(78)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示