算法题1:arguments和sort()方法的知识点考察

题目

请填充代码,使mySort()能使传入的参数按照从小到大的顺序显示出来。

function mySort() {
    var tags = new Array();//使用数组作为参数存储容器
    //请补充你的代码
    return tags;//返回已经排序的数组
}
 
var result = mySort(50,11,16,32,24,99,57,100);/传入参数个数不确定
console.info(result);//显示结果

分析

这道题目考察的知识点有两个,一个是arguments局部变量的应用,一个是排序算法的考察,当然我们这里可以直接应用Array.protytype.sort()进行排序,但是使用``sort()进行排序的时候,有一点要特别注意,当sort()没有参数的时候,那么默认是通过ASCII字符进行排序的。
比如:
在这里插入图片描述
出现上面的原因,也正验证了sort()的排序是基于ASCII码值的,所以,我们应该添加一个比较函数(回调函数)。

var arr = [1,2,21,101,109,124];
//升序
arr.sort(function(a,b){
    retun a-b;
});
//降序
arr.sort(function(a,b){
    retun b-a;
});

再次输出,就可以得到完整的答案。

完整代码

function mySort() {
			    var tags = new Array();//使用数组作为参数存储容器
					for(let i=0;i<arguments.length;i++){
						tags.push(arguments[i]);
					}
					// tags.sort();使用sort()排序会按照ASCII值进行排序
					// 需要指定一个比较函数,才能完成数字数组的排序
					
					tags.sort(function(a,b){
						return a-b;
					});
			    return tags;//返回已经排序的数组
			}
			
			var result = mySort(50,11,16,32,24,99,57,100);//传入参数个数不确定
			console.log(result);//显示结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值