如何在 <textarea> JavaScript 中以逗号分隔的数字进行排序?



我有一个简单的文本区域,我输入的东西是这样的:1,7,5,2,30
然后我把数字放在数组中,当我尝试对数组进行排序时,它实际上将 30 分成"3"和"0",并给我的结果是:0,1,2,3,5,7。
我想要的是:1,2,5,7,30 .如何解决这个问题?谢谢。

这是代码:

var textArea = document.getElementById("myTextArea");
var array=[];
var sortedArray=[];
var i=j=len=0;
myButton.onclick = function () {
myFunc(); 
}
function myFunc() {
array = textArea.value;
for(i=0,len=array.length ; i<len ; i++) {
    if(array[i] != ",") {
        sortedArray[j] = array[i];
        ++j;
    }
}
console.log( sortedArray.sort(function (a,b) {
    return a-b;
    }) ); 
}

这是我如何解决它的方法:

var textArea, myButton;
textArea = document.getElementById("myTextArea");
myButton = document.getElementById("myButton");
myButton.onclick = function () {
    console.log(myFunc());
}
function myFunc() {
    var values, sorted, i;
    values = textArea.value.split(',');
    for (i = 0; i < values.length; i++) {
        values[i] = parseInt(values[i], 10);
    }
    sorted = values.sort(function (a, b) {
        return a-b;
    });
    return sorted;
}

myFunc解释:

  • 文本区域的值使用 split 方法转换为数组
  • 这些值将转换为整数,以便以有意义的方式对其进行排序
  • 使用自定义排序函数对值进行排序(默认排序算法仅适用于对字符串进行排序)

最新更新