国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js 基礎總結(常用的反轉)

ACb0y / 3521人閱讀

摘要:中的反轉中的反轉主要有以下三種,數字反轉,字符串反轉,數組的反轉數組的反轉結果字符串的反轉先將字符串轉換為數組,然后反轉數組,最后將數組轉合并為字符串結果兼容性由于存在兼容性問題,的瀏覽器可以很好的使用,但是是個問題。

js中的反轉

js中的反轉主要有以下三種,數字反轉,字符串反轉,數組的反轉

數組的反轉
var arr = [1,2,3,4,5];
arr = arr.reverse();
console.log(arr);

結果: [5,4,3,2,1]
字符串的反轉

先將字符串轉換為數組,然后反轉數組,最后將數組轉合并為字符串

var str = "hello world";
str = str.split("").reduce(function(acc, v) {
    return v + acc
}, "");
console.log(str);

結果:"dlrow olleh"
兼容性:

由于reduce()存在兼容性問題,>ie8的瀏覽器可以很好的使用,但是ie8是個問題。

var str = "hello world";
str = str.split("").reverse().join("");
console.log(str);

既然有這么有這個兼容性更好的方法,為什么還要用reduce(),我想聰明的你應該很清楚那就是,運行的效率,前者的效率更高。我在自己電腦上跑的實例對比圖如下:

數字的反轉

數字的反轉說起來也很簡單,就是將數字轉化為字符串然后按照字符串的處理方式處理

var num = 123456789;
num = num.toString().split("").reduce(function(acc, v)) {
    return v + acc
}, "");

console.log(num);
結果:987654321
針對以上3種情況的一個綜合解決方案
function objReverse(obj) {
    if (Object.prototype.toString.call(obj) === "[object String]") {
        obj = obj.split("");
        return stringReverse(obj);
    } else if (Object.prototype.toString.call(obj) === "[object Number]") {
        obj = obj.toString().split("");
        return +stringReverse(obj);
    } else if (Object.prototype.toString.call(obj) === "[object Array]") {
        return obj.reverse();
    }

    function stringReverse (obj) {
        if(Array.prototype.reduce !== "undefined") {
            return obj.reduce(function(acc, v) {
                return v + acc;
            }, "")    
        } else {
            return obj.reverse().join("");
        }
    }
}

歡迎吐槽 :)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/92255.html

相關文章

  • Spring理論基礎-控制反轉和依賴注入

    摘要:控制反轉和依賴注入的關系也已經清晰了,它們本質上可以說是一樣的,只是具體的關注點不同。我的博客地址參考資料控制反轉和依賴注入的理解那些年搞不懂的高深術語依賴倒置控制反轉依賴注入面向接口編程控制反轉和依賴注入 序 第一次了解到控制反轉(Inversion of Control)這個概念,是在學習Spring框架的時候。IOC和AOP作為Spring的兩大特征,自然是要去好好學學的。而依賴...

    FullStackDeveloper 評論0 收藏0
  • 【STM32】位操作、按位與、按位或、按位異或、取反、左移、右移等基礎 C 語言知識補充

    摘要:總結對于原二進制數來說,是不變,是反轉。的位數對應原二進制數的位數,對各位進行屏蔽,全部置。左移左移與右移比較類似,是將目標二進制數字向左右移動相應的位數。語言中的邏輯運算符按位與,按位或,按位異或,取反,左右移位不完全手冊立創開源 ...

    waruqi 評論0 收藏0
  • 深入剖析 Laravel 服務容器

    摘要:劃下重點,服務容器是用于管理類的依賴和執行依賴注入的工具。類的實例化及其依賴的注入,完全由服務容器自動的去完成。 本文首發于 深入剖析 Laravel 服務容器,轉載請注明出處。喜歡的朋友不要吝嗇你們的贊同,謝謝。 之前在 深度挖掘 Laravel 生命周期 一文中,我們有去探究 Laravel 究竟是如何接收 HTTP 請求,又是如何生成響應并最終呈現給用戶的工作原理。 本章將帶領大...

    abson 評論0 收藏0
  • 從源碼看 Promise 概念與實現

    摘要:從源碼看概念與實現是異步編程中的重要概念,它較好地解決了異步任務中回調嵌套的問題。這些概念中有趣的地方在于,標識狀態的變量如都是形容詞,用于傳入數據的接口如與都是動詞,而用于傳入回調函數的接口如及則在語義上用于修飾動詞的副詞。 從源碼看 Promise 概念與實現 Promise 是 JS 異步編程中的重要概念,它較好地解決了異步任務中回調嵌套的問題。在沒有引入新的語言機制的前提下,這...

    kel 評論0 收藏0
  • 基礎帶你看Spring源碼——IOC控制反轉

    摘要:依賴注入是向某個類或方法注入一個值,其中所用到的原理就是控制反轉。但發現更多時間是在調和的源碼。里面就是從中取出這個,完成控制反轉的。控制反轉的優點最后來以我個人觀點談談控制反轉的優點吧。控制反轉為了降低項目耦合,提高延伸性。 本章開始來學習下Spring的源碼,看看Spring框架最核心、最常用的功能是怎么實現的。網上介紹Spring,說源碼的文章,大多數都是生搬硬推,都是直接看來的...

    wing324 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<