JavaScriptではアルファベット順にリストを並べ替える方法があります.


このブログを書く時は、ちょうどいいです.このようなアルファベットのリストを見て、中に少し困惑しました.インターネットで調べてみました.いい説明はないですが、lzは自分で見て整理してみます.もし問題があったら、どこに問題があるかを発見したら、ぜひ教えてください.
これは最初の方法です.
function sortkids(e){
if(typeof e=="string") e=document.getElementById(e);
var kids=[];
for (var x=e.firstChild;x!=null;x=x.nextSibling)
   if(x.nodeType==1) kids.push(x);
   
   kids.sort(function (n,m){
    var s=n.firstChild.data; alert(s);
 var t=m.firstChild.data;  alert(t);
 if(st) return 1;
 else return 0;
 });
 
 for(var i=0;i

     
  • one
  • two
  • three
  • four

このプログラムの出力順序の結果は、fourです. one three two
ビルの主人の困惑はsort()関数の中の序列です.
   var s=n.firstChild.data; alert(s);
 var t=m.firstChild.data;  alert(t);
なぜsとtは同じですか?
sort js   Array     

sort   
               Array   。 
arrayobj.sort(sortfunction) 
  
arrayObj
   。   Array   。

sortFunction
   。               。         ,        ASCII           。 

  
sort     Array          ;              Array   。 

    sortfunction          ,              : 
  ,                  。 
 ,        。 
  ,              。 

    li      ,        ,                 ,     js         ,      ,        ,  Array,               。
 
  
 
  
  
    /** 
     * @param string ul 
     * 
     */  
    function sortLis(ul){  
        var u=document.getElementById(ul);  
        var lis=u.getElementsByTagName('li');  
        var tmp=[];  
  
        for(var i=0;i<lis.length;i++){  
            tmp.push(lis[i]);  
        }  
        tmp.sort(function(m,n){  
            var s=m.firstChild.data;  
            var e=n.firstChild.data;  
            if(s>e){  
                return 1  
            }else if(s<e){  
                return -1;  
            }else{  
                return 0;  
            }  
        });  
        for(var i=0;i<tmp.length;i++){  
            u.appendChild(tmp[i]);  
        }  
    }