我有一个函数,它接受一串数字并返回最高和最低的数字。
功能:
function highAndLow(numbers){
var split = numbers.split(' ').map(Number);
var min = Math.min.apply(null, split).toString()
var max = Math.max.apply(null, split).toString()
var empty = ""
var x = empty.concat(max, min).split("").join("");
return x
}
highAndLow("1 9 3 4 -5"); // return "9 -5"
问题是它正在返回"9-5"
,我需要它返回"9 -5"
你不需要一个split
and join
。只需使用concat
来添加空格。
function highAndLow(numbers) {
var split = numbers.split(' ').map(Number);
var min = Math.min.apply(null, split).toString()
var max = Math.max.apply(null, split).toString()
var x = max.concat(" ", min);
return x
}
console.log(highAndLow("1 9 3 4 -5"));
或者使用现代功能的更简洁的代码版本是这样的:
function highAndLow(numbers) {
var split = numbers.split(' ');
return "" + Math.max(...split) + " " + Math.min(...split);
}
console.log(highAndLow("1 9 3 4 -5"));
无需.map
对Number
因min
和max
会做转换为你。我使用了 spread 语法来传递数组,但.apply
如果您不为旧实现进行转译,则可以使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句