成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

js 基礎(chǔ)總結(jié)(常用的反轉(zhuǎn))

ACb0y / 3541人閱讀

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

js中的反轉(zhuǎn)

js中的反轉(zhuǎn)主要有以下三種,數(shù)字反轉(zhuǎn),字符串反轉(zhuǎn),數(shù)組的反轉(zhuǎn)

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

結(jié)果: [5,4,3,2,1]
字符串的反轉(zhuǎn)

先將字符串轉(zhuǎn)換為數(shù)組,然后反轉(zhuǎn)數(shù)組,最后將數(shù)組轉(zhuǎn)合并為字符串

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

結(jié)果:"dlrow olleh"
兼容性:

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

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

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

數(shù)字的反轉(zhuǎn)

數(shù)字的反轉(zhuǎn)說起來也很簡(jiǎn)單,就是將數(shù)字轉(zhuǎn)化為字符串然后按照字符串的處理方式處理

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

console.log(num);
結(jié)果:987654321
針對(duì)以上3種情況的一個(gè)綜合解決方案
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("");
        }
    }
}

歡迎吐槽 :)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/92255.html

相關(guān)文章

  • Spring理論基礎(chǔ)-控制反轉(zhuǎn)和依賴注入

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

    FullStackDeveloper 評(píng)論0 收藏0
  • 【STM32】位操作、按位與、按位或、按位異或、取反、左移、右移等基礎(chǔ) C 語言知識(shí)補(bǔ)充

    摘要:總結(jié)對(duì)于原二進(jìn)制數(shù)來說,是不變,是反轉(zhuǎn)。的位數(shù)對(duì)應(yīng)原二進(jìn)制數(shù)的位數(shù),對(duì)各位進(jìn)行屏蔽,全部置。左移左移與右移比較類似,是將目標(biāo)二進(jìn)制數(shù)字向左右移動(dòng)相應(yīng)的位數(shù)。語言中的邏輯運(yùn)算符按位與,按位或,按位異或,取反,左右移位不完全手冊(cè)立創(chuàng)開源 ...

    waruqi 評(píng)論0 收藏0
  • 深入剖析 Laravel 服務(wù)容器

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

    abson 評(píng)論0 收藏0
  • 從源碼看 Promise 概念與實(shí)現(xiàn)

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

    kel 評(píng)論0 收藏0
  • 基礎(chǔ)帶你看Spring源碼——IOC控制反轉(zhuǎn)

    摘要:依賴注入是向某個(gè)類或方法注入一個(gè)值,其中所用到的原理就是控制反轉(zhuǎn)。但發(fā)現(xiàn)更多時(shí)間是在調(diào)和的源碼。里面就是從中取出這個(gè),完成控制反轉(zhuǎn)的。控制反轉(zhuǎn)的優(yōu)點(diǎn)最后來以我個(gè)人觀點(diǎn)談?wù)効刂品崔D(zhuǎn)的優(yōu)點(diǎn)吧。控制反轉(zhuǎn)為了降低項(xiàng)目耦合,提高延伸性。 本章開始來學(xué)習(xí)下Spring的源碼,看看Spring框架最核心、最常用的功能是怎么實(shí)現(xiàn)的。網(wǎng)上介紹Spring,說源碼的文章,大多數(shù)都是生搬硬推,都是直接看來的...

    wing324 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<