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

问题描述 投票:0回答:2
  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的新手,我正在尝试解决这个问题,但结果是错误的,我不明白为什么。

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

javascript
2个回答
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" />

0
投票
    function transform52 (){

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.