sdad
sdad

Reputation: 55

How to find max number from an array, but from selected elements only in javascript

This is my array from which I want to find max.

number = {"abc": [43,4,34,34,6,444], "dsfsd":[324,324,32,43,34,2] };
console.log((Math.max(...number[abc]));

Here the output is 444, and it's working fine. But now, I want to select max from selected indexs. I am storing those indexes in this array.

available = [0,2,3];

Now, index 0,2,3 of number[abc] are 43,34, 6

And I want 43 to be displayed, because it is the max from selected indexes.

How can I do it?

Upvotes: 1

Views: 55

Answers (3)

Lorenz Merdian
Lorenz Merdian

Reputation: 752

You can also achview this by filtering the number.abc array.

const number = {"abc": [43,4,34,34,6,444], "dsfsd":[324,324,32,43,34,2] };
const available = [0,2,3];
const filtered = number.abc.filter((num, idx) => available.includes(idx));
console.log(Math.max(...filtered));

Upvotes: 0

Ankit Agarwal
Ankit Agarwal

Reputation: 30739

You can create a reusable function that will have a custom logic to check the highest number instead of using Math.max(). Using reusable function will help you to scale the code without duplicating the logic.

var available = [0,2,3];
var number = {"abc": [43,4,34,34,6,444], "dsfsd":[324,324,32,43,34,2] };

function getHighest(available, number){
  var index = available[0];
  var highest = number[index];
  for(var i=1; i<available.length; i++){
    index = available[i];
    if(highest < number[index]){
      highest = number[index];
    }
  }
  return highest;
}
var highest = getHighest(available, number['abc']);
console.log(highest);

Upvotes: 0

CertainPerformance
CertainPerformance

Reputation: 371019

Map the indicies to the values, and then call Math.max on those values:

const number = {"abc": [43,4,34,34,6,444], "dsfsd":[324,324,32,43,34,2] };
const available = [0,2,3];
const availableValues = available.map(i => number.abc[i]);
console.log(Math.max(...availableValues));

Upvotes: 1

Related Questions