今天收到一位粉丝的来信,是关于JS的一道技术题:
首先可以分下下这道题目中的知识点,主要由下面2个组成:
- 用prompt来接受输入
- 对数组进行冒泡排序
经过拆解过后,其实问题就分成了两个子问题,可以逐一进行击破:
- 关于prompt
prompt其实是javascript的一个系统API,也可以称作是内部API,不需要引用第三方库就能支持,主要作用是用来接受用户的输入,在浏览器中表现为如下图所示的效果:
可以看到一旦运行这个函数,浏览器就会弹出一个对话框,等待输入内容
- 数据冒泡排序
说到排序,肯定是涉及到算法的内容,而冒泡排序也是初学算法时排序算法中的必经之路,只不过这里的要求时用JS去写这个冒泡排序而已,本质没有变,只要多练习几次冒泡排序,就会熟能生巧了。
解决了子问题后,我们再回到原题,就很好地理解如何去做,首先输入10个整数,分别存入数组中:
for(var i = 0; i < 10; i++)arr.push(parseInt(prompt("Enter a number")));
通过一个for循环,就能实现依次循环输入10个数的功能,而这里用到了parseInt这个函数,用来对输入的数字进行字符串到整形的转换,最后添加到arr数组中,经过10轮迭代,就把10个用户输入的数字填到了arr中。
接下来就是对数组arr进行冒泡排序:
for(var i = 0; i < arr.length; i++){ for(var j = 0; j < ( arr.length - i -1 ); j++){ if(arr[j] > arr[j+1]){ var temp = arr[j] arr[j] = arr[j + 1] arr[j+1] = temp } } } console.log(arr);
上面👆这段代码就是经典的冒泡排序,核心就是每次遍历都会把相邻的两个数进行大小的比较,然后进行置换位置,达到冒泡排序的效果。
如果看到这里还是不够过瘾,可以接下来继续欣赏阿灏为你录制的视频,可以动态地看下代码运行的结果哦:
声明:来自ven coding,仅代表创作者观点。链接:https://eyangzhen.com/6025.html