javascript - 请大家看一下代码
天蓬老师
天蓬老师 2017-04-11 13:10:58
[JavaScript讨论组]
        var li = document.getElementsByTagName('li');
         function bubbleSort(){
             for(var i = 0;i < li.length-1;i++){
                 for(var j = 0;j < li.length-i-1;j++){
                     if(parseInt(li[j].innerHTML) > parseInt(li[j+1].innerHTML)){
                         swap(li[j],li[j+1]);
                     }
                 }        
             }
             return li;
         }
         function swap(beforeIndex,afterIndex){
             var item = beforeIndex;
             beforeIndex = afterIndex;
             afterIndex = item;
         }
         function ff(){
             var aa = bubbleSort();
             for(var i = 0;i < aa.length;i++){
                 document.write(aa[i].innerHTML);
             }
         }

使用冒泡排序比较li中的数字大小,然后排序输出,将ff函数绑定在一个按钮上,但并没有排序,请问哪里有问题?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
大家讲道理

先说下,我也是新手,所以第一次回答的有些问题,有错的地方还请海涵;
下面是我改的,不足之处,不吝赐教;

var lii = document.getElementsByTagName('li');
var liiLength = lii.length;
var liiArr = [];
//I think
for(var i=0;i<liiLength;i++){
    liiArr.push( parseInt(lii[i].innerText) );
}

function bubbleSort(lii){
    var li = lii;
    var temp = '';
    for(var i = 0; i < li.length-1; i++){
        for(var j = 0;j < li.length-i-1;j++){
            if(li[j] > li[j+1] ){
                //I think
                temp = li[j];
                li[j] = li[j+1];
                li[j+1] = temp;
            }
        }
    }
    return li;
}


function ff(lii){
    var aa = bubbleSort(lii);
    var aaLength = aa.length;
    for(var i = 0; i < aaLength; i++){
        document.write( aa[i] );
    }
}
ff(liiArr);
    
巴扎黑

swap这么写是没效果的,除非

function swap (li, i, j) {
  var t = li[i]; li[i] = li[j]; li[j] = t;
}

// 调用
swap(li, j, j+1)

原因是 js 采用值传递,因此引用不会变化

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号