charCodeAt:按字母顺序排序字符串中的字母

时间:2018-01-04 16:14:03

标签: javascript

  1. 编写一个JavaScript程序,按字母顺序转换给定字符串的字母。

    function transform52 (){
    
        var str = document.getElementById("string52").value;
        toArray = str.split();
    
            for(i=0 ; i<toArray.length - 1 ; i++){//Input: ba
                if (toArray[i].charCodeAt(0) > toArray[i+1].charCodeAt(0) ){        // true
                    var temp;
                    temp = toArray[i];                              // temp = b
                    toArray[i] = toArray[i+1]               // toArray[0] = a
                    toArray[i+1] = temp;                          // toArray[1] = b
                }
            }
            document.getElementById("result52").innerHTML = toArray.join(""); //Output: ba         :(
    }
    

    我是JavaScript的新手,我正在尝试解决这个问题,但结果是错误的,我真的不明白为什么。

  2. 为什么我的代码不起作用?

2 个答案:

答案 0 :(得分:0)

您应该使用空字符串调用split以获取字符数组。

function transform52() {
    const str = document.getElementById("string52").value;
    const toArray = str.split("");

    for (i = 0; i < toArray.length - 1; i++) { //Input: ba
        if (toArray[i].charCodeAt(0) > toArray[i + 1].charCodeAt(0)) { // true
            var temp;
            temp = toArray[i]; // temp = b
            toArray[i] = toArray[i + 1] // toArray[0] = a
            toArray[i + 1] = temp; // toArray[1] = b
        }
    }
    document.getElementById("result52").innerHTML = toArray.join(""); //Output: ba :(
}

transform52();
<input id="string52" type="text" value="ba" />
<div id="result52" />

答案 1 :(得分:0)

    function transform52 (){

          var str = document.getElementById("string52").value,
          toArray = str.split("").sort();

             document.getElementById("result52").innerHTML = toArray.join("");
    }

这是我的解决方案,不能相信这很容易:)