从提示中排序字符串不起作用,但它在硬编码时有效

时间:2015-04-25 17:23:36

标签: javascript

当我通过提示输入值时,我的代码无效,但正在使用硬编码输入。

有人可以帮我理解为什么会这样吗?

var str=prompt("Enter String :: ");
alert(selectionSort(str));

function selectionSort(items){
    var len = items.length,
        min;

    for (i=0; i < len; i++){
        min = i;

        //check the rest of the array to see if anything is smaller
        for (j=i+1; j < len; j++){
            if (items[j] < items[min]){
                min = j;
            }
        }
        if (i != min){
            swap(items, i, min);
        }
    }
    return items;
}

这是我的交换功能:

function swap(items, firstIndex, secondIndex){
    var temp = items[firstIndex];
    items[firstIndex] = items[secondIndex];
    items[secondIndex] = temp;
}

1 个答案:

答案 0 :(得分:0)

如果您只想对可以使用的字符进行排序:

var str = "farhan";
var sorted = str.split("").sort().join("");
console.log(sorted); // "aafhnr"

.split("")将字符串转换为数组。 .sort对数组进行排序(默认为升序),.join("")将数组转换回字符串。

出于教育目的,编写自己的排序例程可能很有用,但除此之外,尽可能多地使用内置函数。