我有一个函数,它接受一个数字字符串,并返回最高和最低的数字。
功能:
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"
发布于 2017-12-02 22:20:26
您不需要split和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将为您完成转换。我使用扩展语法来传递数组,但是如果您不想转换为旧的实现,则可以使用.apply。
发布于 2017-12-02 22:20:13
把中间的空格连接起来就像,
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);
return x;
}
console.log(highAndLow("1 9 3 4 -5")); // return "9 -5"
发布于 2017-12-02 22:21:55
使用字符串连接。在es5中:
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()
return max + " " + min;
}
highAndLow("1 9 3 4 -5");
// It returns "9 -5"https://stackoverflow.com/questions/47608793
复制相似问题