兼容ie9以下Array.forEach,.map,.filter,String.trim方法

最近公司組織新寫一個客服系統(tǒng),涉及到讓人頭痛的兼容,更頭痛的要兼容到ie8。開發(fā)過程遇到的很基礎卻很影響進度的問題,就當做個筆記記錄一下。

瀏覽器存在三方面的兼容性問題,html,css和js都存在兼容性問題,對于html兼容性問題,只能放棄使用新標簽(<aside>,<footer>等)采用其它方式實現(xiàn)。對于js兼容性問題,可以通過代碼判斷瀏覽器類型(user-agent)從而執(zhí)行不同的代碼,也可以使用第三方工具例如jquery實現(xiàn)兼容。對于css問題,可以使用css-hack(之前看的一片有關css hack的文章??https://blog.csdn.net/freshlover/article/details/12132801)和瀏覽器私有樣式實現(xiàn)兼容。說了那么都不是重點哈哈哈哈,這次主要表述的是Array的三個方法.forEach,.map,.filter,以及字符串.trim兼容ie8的個人理解。

1.Array.prototype添加要重新寫的方法,參數(shù)為傳入的回調(diào)函數(shù),然后for循環(huán)this(this指向的傳入的數(shù)組)。
后兩個都基于.forEach,所以把.forEach放在第一個。

????????if(!Array.prototype.forEach){

? ? ????????????Array.prototype.forEach = function (callback) {

? ? ? ? ????????????????for(var i = 0;i < this.length; i ++){

? ? ? ? ? ????? ????????????????callback(this[i],i,this);

? ? ? ????????????????? };

? ? ????????????};

?????????};

????????if(!Array.prototype.map){

? ? ????????????Array.prototype.map = function (callback) {

? ? ? ? ????????????????var returnArray = [];

? ? ? ????????? ????????this.forEach(function (item,index,array) {

? ? ? ? ? ? ????????????????????returnArray.push(callback(item,index,array))

? ? ? ????????? ????????});

? ? ? ? ????????????????return returnArray;

? ? ????????????};

????????};

????????if(!Array.prototype.filter){

? ? ????????????Array.prototype.filter = function (callback) {

? ? ? ? ????????????????var returnArray = [];

? ? ? ? ????????????????this.forEach(function (item,index,array) {

? ? ? ? ? ? ????????????????????if(callback(item,index,array)){

? ? ? ? ? ? ? ? ????????????????????????returnArray.push(item);

? ? ? ? ? ? ? ? ?????????????????};

? ? ? ? ????????????????});

? ? ? ? ????????????????return returnArray;

? ? ????????????};

????????};

2.String.prototype增加一個回調(diào)方法,返回正則替換后的數(shù)據(jù)。

????????if(!String.prototype.trim){

? ? ????????????String.prototype.trim = function () {

? ? ? ? ????????????????return this.replace(/(^[\s]+|[\s]+$)/g,'')

? ? ????????????};

????????};



end。


參考資料:Array.prototype

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容