一天,接到老师给我出的一道JavaScript题
用num数组储存一系列数字,然后从小到大排序
这个题属于排序问题,我们来用逻辑理清思路
用 for
循环遍历所有数字,让每两个数字进行比较
用 i
不断遍历数组中的每个数
用 j
从第二个元素遍历数组中的每个数
比如说,用户输入
" [1,3,5,2,4,7,9,8] "
先判断前两个数字谁大谁小,将小的放大的前面,大的放小的后面
1<3 所以不用动
如果往后遍历到了 5
和 2
,前项 5
大于 后项 2
因此用一个新的变量 tmp
储存前项 5
,让前项和后项交换的同时,前项被替换掉后,可以用tmp
代替前项放入,完成替换。
即使前面 1
和3
的位置中少了个2
,但是3
迟早要跟2
进行比较替换
因此,先建立一个for循环,条件是i
需要遍历到遍历完数组中所有数字为止
for(var i=0;i<nums.length;i++){
}
接着,要让前项和后项进行比较,i
为前项的话,后项则是j
,j
比i
大1
for(var i=0;i<nums.length;i++){
for(var j=i+1;j<nums.length;j++){
}
}
运用前面对比前项和后项放入代码中
for(var i=0;i<nums.length;i++){
for(var j=i+1;j<nums.length;j++){
var tmp=nums[i];
nums[i]=nums[j];
nums[j]=tmp;
}
}
最后全部替换完,输出结果
document.write(nums);