Discuss
/
JavaScript
/
作业
作业
Topic source按这个逻辑的话直接一层循环不就行了吗
var list = document.getElementById('test-list'),li = list.children;
for(var j = 0; j<li.length-1; j++){
if(li[j].innerText >= li[j+1].innerText){
list.insertBefore(li[j+1],li[j]);
}
}
var i, j, c, list = document.getElementById('test-list'); li = list.children; for (i = 0; i < li.length - 1; i++) { for (j = i; j < li.length; j++) { if (li[i].innerText > li[j].innerText) { list.insertBefore(li[j], li[i]); } } }
只用一层实现不了
假设有个数组[3,7,2,8,5],数组第0项:3和数组第1项:7,比较后得到数组[3,7,2,8,5],数组的第1项:7和数组第2项:2,比较后得到数组[3,2,7,8,5],(看到这里应该就感觉出有问题了吧)
最后比较完得到数组[3,2,7,8,5],如果以这个结果输出就不对了,应该是让外层第0项跟所有项比较,内层再一项一项比较。语言描述能力差,试着理解一下吧!看下网上sort方法原理可以帮助理解!
- 1
BruceWang_NEU
var list = document.getElementById('test-list'),li = list.children; for(var i = 0; i<li.length; i++ ){ for(var j = 0; j<li.length-i-1; j++){