字符串排序 这段js代码 输入一个单词 给字母排序 为什么不执行 求大神指教 HTML列表排序好像不好使,求教

作者&投稿:旗燕 (若有异议请与网页底部的电邮联系)

两个原因:

1、if (ss[n+1].charCodeAt()< ss[n].charCodeAt()) 这里应该用ss[m]与ss[n]进行比较,如果要交换也应该用ss[m]与ss[n]进行交换

2、string类型一旦声名赋值后就是只读的,因此使用ss[m]=XX的方式对其赋值是无效的,string的值不会改变。

因此代码需要做如下修改:

<script type="text/javascript">
    function sort(text) {
        var ss = text.toLowerCase();

        var ssArray = [];
        for (var i = 0; i < ss.length; i++) {
            ssArray.push(ss[i]);
        }

        var tep;
        for (var m = ssArray.length - 1; m > 0; m--) {
            for (var n = 0; n < m; n++) {
                if (ssArray[m].charCodeAt() < ssArray[n].charCodeAt()) {
                    tep = ssArray[m];
                    ssArray[m] = ssArray[n];
                    ssArray[n] = tep;
                }
            }
        }
        document.write(ssArray.join(''));
    }
    var s = "cdba";
    sort(s);
</script>


求汇编大神指教,输入一组字符串对其排序,并显示~

DATA SEGMENT
DT0 DB 13, 10
DT1 DB 100 DUP('$')
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
AGN:
MOV AX, DATA
MOV DS, AX

MOV DI, 0
LEA SI, DT1
LOOP0:
MOV AH, 1
INT 21H
CMP AL, 0DH
JE BEGIN
MOV [SI], AL
INC SI
INC DI
JMP LOOP0

BEGIN:
SUB DI, 1
MOV CX, DI
LOOP1:
MOV DX, CX
MOV BX, 0

LOOP2:
MOV AL, DT1[BX]
CMP AL, DT1[BX + 1]
JAE NO_CHANGE
XCHG AL, DT1[BX + 1]
MOV DT1[BX], AL
NO_CHANGE:
INC BX
LOOP LOOP2

MOV CX, DX
LOOP LOOP1

LEA DX, DT0
MOV AH, 09H
INT 21H

MOV AX, 4C00H
INT 21H
CODE ENDS
END AGN

好用了。

不是数字1,而是字母i,
还有,li是有序列表,但不是自动排序列表,它只是给列表项加一个数字前缀,用以表示这些项目是有顺序的,与其对应的是无序列表(前缀实心圆点).但他不会对列表项进行排序.