最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

write a function finding maximumminimum of array in javascript - Stack Overflow

programmeradmin3浏览0评论

[WITHOUT USING MIN/MATH Function]

The question ask me to create the function including 2 parameters.first is an array and the second parameter is either the String “Minimum” or “Maximum” . It confusing me when i don't know how to input the parameter as the string in the function. So that i decide to create 2 similar function as extremeValue(vector, maximum) and extremeValue(vector, minimum) ( I still don't know whether i can do that or not ). And this is my code for extremeValue(vector, maximum).

So the way i did is create the array which have the same value with vector[i] than i using if statement to see if it bigger than that vector or not. However, The code is doesn't work. :(

var vector = [3, 1, 1]
var maximum

//------------this function give us the vector with all same value---------------//
function set(value, len) {

    var arr = [];
    for (var i = 0; i < len; i++) {
        arr.push(value);
    }
    return arr;
}
//---------------------------------------------------//


//---------------------------------------------------//
function extremeValue(vector, maximum) {
    var answer = "";

    for (var count = 1; count++; count < vector.length) {
        if (set(vector[count], vector.length) > vector)
            answer += vector[count] + "is maximum"
    }
    return answer
}

//---------------------------------------------------//
console.log(extremeValue(vector, maximum))

[WITHOUT USING MIN/MATH Function]

The question ask me to create the function including 2 parameters.first is an array and the second parameter is either the String “Minimum” or “Maximum” . It confusing me when i don't know how to input the parameter as the string in the function. So that i decide to create 2 similar function as extremeValue(vector, maximum) and extremeValue(vector, minimum) ( I still don't know whether i can do that or not ). And this is my code for extremeValue(vector, maximum).

So the way i did is create the array which have the same value with vector[i] than i using if statement to see if it bigger than that vector or not. However, The code is doesn't work. :(

var vector = [3, 1, 1]
var maximum

//------------this function give us the vector with all same value---------------//
function set(value, len) {

    var arr = [];
    for (var i = 0; i < len; i++) {
        arr.push(value);
    }
    return arr;
}
//---------------------------------------------------//


//---------------------------------------------------//
function extremeValue(vector, maximum) {
    var answer = "";

    for (var count = 1; count++; count < vector.length) {
        if (set(vector[count], vector.length) > vector)
            answer += vector[count] + "is maximum"
    }
    return answer
}

//---------------------------------------------------//
console.log(extremeValue(vector, maximum))
Share Improve this question edited Aug 18, 2015 at 7:20 Tushar 87.2k21 gold badges163 silver badges181 bronze badges asked Aug 18, 2015 at 6:31 Tim NguyenTim Nguyen 851 gold badge1 silver badge6 bronze badges 0
Add a ment  | 

5 Answers 5

Reset to default 4

Without using Math or any other javascript function, you can find the max and min values of an array as below.

var arr = [2, 3, 5, 10, 2, -9, 3];

alert("Max value is " + arrayMaxMin(arr, "Max"));
alert("Min value is " + arrayMaxMin(arr, "Min"));

function arrayMaxMin(array, selector) {

  var val = array[0];   // variable to hold the current max/min value.

  for (var i = 1; i < array.length; i++) {
    if (selector == "Min") {
      if (array[i] < val) {
        val = array[i];
      }
    } else if (selector == "Max") {
      if (array[i] > val) {
        val = array[i];
      }
    }

  }
  return val;
}

You can use Math functions. Math.min will return you the smallest number of the passed numbers. You cannot call these functions directly on array so, you can use apply to call these functions and pass the array as parameters to the functions.

The Math.min() function returns the smallest of zero or more numbers.

Math.max as follow:

// array: The source array
// type: 'max' or 'min' to find Maximum or Minimum number
var getNum = function(array, type) {
  return Math[type].apply(null, array);
};

var arr = [1, 3, 35, 12];
document.write('Max: ' + getNum(arr, 'max'));

document.write('<br />Min: ' + getNum(arr, 'min'));

UPDATE

they does not allow us use min max function

You can use array methods to get maximum and minimum value. Sort the array in ascending order and then the first element in array will be minimum and last element is maximum.

// array: Source array
// type: 'max' or 'min'
var getNum = function(array, type) {

  // Sort the array by ascending order
  array.sort(function(a, b) {
    return a < b;
  });

  return type === 'max' ? array[0] : array[array.length - 1];
};

var vector = [233, 10, 32543, 54321];

var max = getNum(vector, 'max');
var min = getNum(vector, 'min');

document.write('Max: ' + max);
document.write('<br />Min: ' + min);

This should work too!. Hope it helps bro.

 var arr = [2 ,4 ,56, 23, 10];
 var max = arr.reduce(function(x,y){
    return (x > y) ? x : y;
 });
 var min = arr.reduce(function(x,y){
    return (x < y) ? x : y;
 });
 console.log('Max: '+ max);
 console.log('Min: '+ min);

You could do something like this:

function extremeValue(my_arr, min_max) {
  var retval, i, len;
  for(i=0,len=my_arr.length; i < len; i++) {
     if (min_max == 'minimum') {
       retval = (my_arr[i] < retval ? my_arr[i] : retval);
     } else {
       retval = (my_arr[i] > retval ? my_arr[i] : retval);
     }
  }
  return retval;
}

Then you would call it like this:

console.log(extremeValue(vector, 'maximum'));
console.log(extremeValue(vector, 'minimum'));

Without the Built in Math Min/Max method:

let minMaxValues = (arr) => {
    let maxValues;
    let minValues;
 
    for (let i = 0; i < arr.length; i++) {
      // check first value with all iterater
      if(arr[i] < arr[1]){
        minValues = arr[i];
      }

      // check last value with all iterater
      if(arr[i] > arr[arr.length-1]){
        maxValues = arr[i];
      }
      
    }
    console.log(minValues);
    console.log(maxValues);
  }

  minMaxValues([100, 20, 30, 10, 50]);

发布评论

评论列表(0)

  1. 暂无评论