zoukankan      html  css  js  c++  java
  • JavaScript实现字符串逆置的几种方法

     

    1. 一般来说js实现字符串逆置输出的一般思路是:

    1、将字符串转为数组,一个字符为数组的一个元素; 
    2、将数组倒置; 
    3、再将数组元素拼接为字符串。

    2. 一般用到的方法有:

    join():该方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。 
    split():将一个字符串分割为子字符串数组,然后将结果作为字符串数组返回。 
    reverse():返回一个元素顺序被反转的 Array 对象。 
    charAt(): 返回指定位置的字符。

    3. 下面是几种利用js都实现了字符串的逆置输出。

    /*方法一:利用Array对象的reverse()方法,用于颠倒数组中元素的顺序。*/
    var  str1 = "abcdefg";
    var result1 = str1.split("").reverse().join("");
    console.log(result1); //gfedcba
    
    
    /*方法二:*/
    var  str2 = "abcdefg";
    for(var i = str2.length - 1; i >= 0; i--){
        console.log(str2.charAt(i));
        //结果:逆序输出abcdefg,但是每行只输出一个字符
    }
    
    
    /*方法三:调用一个单独的函数实现*/
    function Reverse(str) {
        var len = str.length;
        var result = "";
        if(len == 0){
            return null;
        }
        while( --len >= 0 ){
            result += str.charAt(len);
        }
        return result; //gfedcba
    }
    var  str3 = "abcdefg";
    var result3 = Reverse(str3);
    console.log(result3); 
    
    
    /*方法四:利用call():调用一个对象的一个方法,以另一个对象替换当前对象。*/
    var  str4 = "abcdefg";
    var result4 = Array.prototype.slice.call(str4).reverse().join("");
    console.log(result4); //gfedcba
    
    
    /*方法五:利用排序实现*/
    function Sort(a,b) {
        return b.localeCompare(a); //反序排列
        //return a.localeCompare(b); //正序排列
    }
    var  str5 = "abcdefg";
    var result5 = str5.split("").sort(Sort).join("");
    console.log(result5); //gfedcba
    
    
    /*方法六:利用堆栈实现字符串逆置输出:先实现一个栈,然后再利用这个栈将字符串逆置输出*/
    function stack() {
        this.data = []; //保存栈内元素
        this.top = 0; //记录栈顶位置
    }
    stack.prototype = {
        push: function push(element) { //入栈:先在栈顶添加元素,然后元素个数加1
            this.data[this.top++] = element;
        },
        pop: function pop() { //出栈:先返回栈顶元素,然后元素个数减1
            return this.data[--this.top];
        },
        peek: function peek() { //查找栈顶元素
            return this.data[this.top-1];
        },
        clear: function () { //清空栈内元素
            this.top = 0;
        },
        length: function () { //返回栈内的元素个数,即长度
            return this.top;
        }
    }
    function reverse(str) {      //利用这个栈实现字符串逆置输出
        var s = new stack();      //创建一个栈的实例
        var arr = str.split(''); //将字符串转成数组
        var len = arr.length;
        for(var i=0; i<len; i++){ //将元素压入栈内
            s.push(arr[i]);
        }
        for(var i=0; i<len; i++){  //输出栈内元素
            console.log(s.pop());
        }
    }
    var str6 = "abcdefg";
    reverse(str6);
    

    4.堆栈的补充理解

    堆栈实现: 
    pop() :删除集合的最后一个元素,并返回元素的值。 
    push() :将元素添加到集合的结尾。

    栈的主要方法和属性: 
    入栈。push方法; 
    出栈。pop方法; 
    访问栈顶元素。peek方法; 
    清除所有栈内元素。clear方法; 
    记录栈顶位置。top属性; 
    判断栈内是否有元素存在。length方法;

    PS:如果您还有更好更多的字符串逆序的实现方式,欢迎给我留言或与本人联系哦.

  • 相关阅读:
    【Java集合】-- LinkedList源码解析
    【Java集合】--ConcurrentHashMap源码解析
    【Java集合】--ConcurrentHashMap源码解析
    【Java集合】-- CopyOnWriteArrayList源码解析
    【Java集合】-- CopyOnWriteArrayList源码解析
    【Java集合】-- ArrayList源码解析
    【Java集合】-- ArrayList源码解析
    【Java集合】-- HashMap源码解析
    工厂模式和抽象工厂模式
    常见的排序算法整理
  • 原文地址:https://www.cnblogs.com/luorende/p/8549506.html
Copyright © 2011-2022 走看看