我们说我有一串用空格分隔的数字,我想返回最高和最低的数字。如何才能在JS中使用函数做到最好?示例:
highestAndLowest("1 2 3 4 5"); // return "5 1"
我希望这两个数字都以字符串形式返回。最低的数字首先是空格,然后是最高的数字。
这是我到目前为止所做的:
function myFunction(str) {
var tst = str.split(" ");
return tst.max();
}
答案 0 :(得分:4)
您可以使用Math.min和Math.max,并在数组中使用它们来返回结果,请尝试:
function highestAndLowest(numbers){
numbers = numbers.split(" ");
return Math.max.apply(null, numbers) + " " + Math.min.apply(null, numbers)
}
document.write(highestAndLowest("1 2 3 4 5"))

答案 1 :(得分:2)
以下是改进解决方案并促进全球使用的代码:
/* Improve the prototype of Array. */
// Max function.
Array.prototype.max = function() {
return Math.max.apply(null, this);
};
// Min function.
Array.prototype.min = function() {
return Math.min.apply(null, this);
};
var stringNumbers = "1 2 3 4 5";
// Convert to array with the numbers.
var arrayNumbers = stringNumbers.split(" ");
// Show the highest and lowest numbers.
alert("Highest number: " + arrayNumbers.max() + "\n Lowest number: " + arrayNumbers.min());

答案 2 :(得分:0)
好的,让我们看看如何使用ES6制作简短的功能......
你有这个字符串号码:
<canvas style="width:200px;height:100px;border:thin black solid"></canvas>
并在ES6中创建这样的函数:
const num = "1 2 3 4 5";
并像这样使用它:
const highestAndLowest = nums => {
nums = nums.split(" ");
return `${Math.max(...nums)} ${Math.min(...nums)}`;
}
答案 3 :(得分:0)
function highAndLow(numbers){
var temp = numbers.split(' ');
temp.sort(function(a,b){return a-b; });
return temp[temp.length-1] + ' ' + temp[0];
}
有所不同: 首先将其拆分为一个数组,然后进行排序……并返回最后一个(最大)元素与第一个(最小)元素