返回带空格的数字字符串中的最高和最低数字

时间:2015-06-18 13:33:39

标签: javascript numbers

我们说我有一串用空格分隔的数字,我想返回最高和最低的数字。如何才能在JS中使用函数做到最好?示例:

highestAndLowest("1 2 3 4 5"); // return "5 1"

我希望这两个数字都以字符串形式返回。最低的数字首先是空格,然后是最高的数字。

这是我到目前为止所做的:

function myFunction(str) {
    var tst = str.split(" ");
    return tst.max();
}

4 个答案:

答案 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];
}

有所不同: 首先将其拆分为一个数组,然后进行排序……并返回最后一个(最大)元素与第一个(最小)元素