Return highest and lowest number in a string of numbers with spaces

13,251

Solution 1

You can use Math.min and Math.max, and use them in an array to return the result, try:

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"))

Solution 2

Below is a code that improves the solution and facilitates global use:

/* 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());

Solution 3

OK, let's see how we can make a short function using ES6...

You have this string-number:

const num = "1 2 3 4 5";

and you create a function like this in ES6:

const highestAndLowest = nums => {
  nums = nums.split(" ");
  return `${Math.max(...nums)} ${Math.min(...nums)}`;
}

and use it like this:

highestAndLowest("1 2 3 4 5"); //return "5 1"
Share:
13,251
Marco V
Author by

Marco V

WordPress developer with experience in JS, PHP, jQuery, SASS and AngularJS

Updated on June 04, 2022

Comments

  • Marco V
    Marco V almost 2 years

    Let's say I have a string of numbers separated by spaces and I want to return the highest and lowest number. How could that best be done in JS using a function? Example:

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

    I would like the both numbers to be returned in a string. The lowest number first followed by a space then the highest number.

    Here is what I have so far:

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