js陣列常用方法相容實現

2021-09-07 18:48:04 字數 1869 閱讀 5460

js的陣列提供了很多簡便的操作方法。如foreach,map,every,some,filter,reduce。這些方法極大的簡化了陣列的操作,甚至將一些類陣列資料,如dom元素,通過es6的[...***]解構或者.slice.call(xx)轉成陣列後,也可以方便的使用。但是,這幾個方法是從ie9才支援的,如果專案不需要相容ie8及以下的,大可以放心的使用,但是如果需要相容,就不能開心的玩耍了。

最近忙裡偷閒,乾脆寫一組實現,省的以後麻煩,各位如果有需要,直接那走使用,其中使用了字串模板,babel一下就行了。

array.prototype.foreach || (array.prototype.foreach = function(callback)  is not a function!`);

} let context = arguments[1], //this

arr = this;

for(let i = 0; i < arr.length; i++)

return undefined;

});

array.prototype.map || (array.prototype.map = function(callback)  is not a function!`);

} let context = arguments[1], //this

arr = this,

_new = ;

for(let i = 0; i < arr.length; i++)

return _new;

});

array.prototype.filter || (array.prototype.filter = function(callback)  is not a function!`);

} let context = arguments[1], //this

arr = this,

_new = ;

for(let i = 0; i < arr.length; i++)

return _new;

});

array.prototype.every || (array.prototype.every = function(callback)  is not a function!`);

} let context = arguments[1], //this

arr = this;

for(let i = 0; i < arr.length; i++)

return true;

});

array.prototype.some || (array.prototype.some = function(callback)  is not a function!`);

} let context = arguments[1], //this

arr = this;

for(let i = 0; i < arr.length; i++)

return false;

});

array.prototype.reduce || (array.prototype.reduce = function(callback)  is not a function!`);

} let sum = arguments[1] || 0, //sum or initval

arr = this;

for(let i = 0; i < arr.length; i++)

return sum;

});

如果覺得好,歡迎來githup點星。

js 陣列常用方法原始碼實現

手寫push原始碼實現 1.在陣列的末尾新增 2.可以一次新增多項不同型別的資料 3.返回陣列的長度 const array 1,2,3,4 console.log array.push 5,6,7 console.dir array array.prototype.mypush function ...

js陣列常用方法

push 向陣列的末尾增加一項 返回值是陣列的新長度 unshift 向陣列開頭增加一項 返回值是陣列的新長度 pop 刪除陣列的末尾項 返回值是刪除的陣列項 shift 刪除陣列開頭項 返回被刪除的開頭專案 splice 刪除陣列中的任意項 返回值是被刪除的陣列項 slice 複製陣列 返回值是複...

js陣列常用方法

array.join 方法將陣列中所有元素都轉化為字串並連線在一起,返回最後生成的字串。可以指定乙個可選的字串在生成的字串中來分隔陣列的各個元素。如果不指定分隔符,預設使用逗號。示例 var a 1,2,3 console.log a.join 1,2,3 console.log a.join 1 ...