我有一个函数,它接受一串数字并返回最高和最低的数字。
功能:
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"
答案 0 :(得分:1)
您不需要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
会为您进行转化。我使用了扩展语法来传递数组,但如果您没有针对旧实现进行转换,则可以使用{{1}}。
答案 1 :(得分:0)
在中间插入一个空格,如
IEnumerable<IGrouping<string, FileItem>> number1
IEnumerable<IGrouping<string, FileItem>> number2
答案 2 :(得分:0)
使用字符串连接。 在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"
答案 3 :(得分:0)
将代码拆分为单独的函数将有助于简化整个部分:
function getMinAndMax(numbers) {
return {
min: Math.min.apply(null, numbers),
max: Math.max.apply(null, numbers),
};
}
function getMinAndMaxViaString(input) {
var numbers = input.split(' ').map(Number);
var minAndMax = getMinAndMax(numbers);
return minAndMax.min + ' ' + minAndMax.max;
}
这允许您独立地使用和修改每个功能,原始功能和委托功能。
对于问题的原始点,简单地将字符串与空格连接就足够了。
答案 4 :(得分:0)
这可以大大简化 - 例如这个代码将在IE5.5以后的任何版本的ANY JS浏览器上运行,所以你可以像1999年一样派对
function highAndLow(numberString) {
var split = numberString.split(" ").sort(function(a, b){return a - b});
return split.pop() + " " + split.shift();
}
console.log(highAndLow("1 9 3 4 -5")); // return "9 -5"