今天又接着来继续做一道有关数组的题:

这里有一个难点是,数字排序里有负数。使用sort进行排序也会报错。
所以,几经思考和测试后,我的答案如下:
function highAndLow(numbers){ var numArr=[],numArr1=[],numArr2=[];
numbers.split(' ').map(function(n){ if(n>=0){
numArr2.push(n);
}else{
numArr1.push(n);
}
});
numArr1.sort((a,b)=>b-a);
numArr2.sort((a,b)=>b-a);
numArr = numArr2.concat(numArr1);
numArr.splice(1,numArr.length-2); return numArr.join(' ')
}先将正负数分为两组,再分别进行排序,最后合并数组,取数组的第一位和最后一位即可。
方法有点笨。哈哈哈,我就是那只笨鸟了。
最后去查看别人写的代码:
实践性最强的是
function highAndLow(numbers){
numbers = numbers.split(' ').map(Number); return Math.max.apply(0, numbers) + ' ' + Math.min.apply(0, numbers);
}直接运用了Math的max和min方法(我怎么就没想到呢?猪脑袋,555...)
还有一个和我最初想法最接近的:
function highAndLow(numbers){ var arr = numbers.split(' ').sort(function(a, b) { return a - b }); return arr[arr.length -1] + ' ' + arr[0];
}只是当时我写成了
function highAndLow(numbers){
numbers.split(' ').sort((a, b)=> a - b });
numbers.splice(1,numbers.length-2); return numbers.join(' ');
}因为没把numbers转换成数组,导致错误(低级错误)
以上就是code war的实例教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号