MoreeZ
MoreeZ

Reputation: 118

How to create a variable that is the lowest possible number?

What I have here is an algorithm that finds the highest value in each subarray and pushes it onto a separate array (final).

I want to let the variable 'value' equal to the lowest possible number so that any negative number can be considered higher than 'value'

function largestOfFour(arr) {
  var final=[];
  arr.map(sub => {
    let value = 0; //issue
    sub.map(num => {
      if(num>value){value=num};
    })
    final.push(value)
  })
  return final;
}
console.log(largestOfFour([[17, 23, 25, 12], [25, 7, 34, 48], [4, -10, 18, 21], [-72, -3, -17, -10]]));

In this example the last subarray returns 0 since non of the numbers in that subarray were higher than the initial value of 'value' which is 0.

I want it to return '-3' instead since it's the highest number in the subarray.

Upvotes: 1

Views: 302

Answers (2)

p.s.w.g
p.s.w.g

Reputation: 149020

You can just set value to Number.NEGATIVE_INFINITY but for what it's worth, I'd recommend simply using reduce instead of map in your inner function. That way, the inner loop will start with sub[0] as an initial value rather than depending on any placeholder.

function largestOfFour(arr) {
  var final = arr.map(sub => sub.reduce((num, value) => Math.max(num, value)));
  return final;
}
console.log(largestOfFour([
  [17, 23, 25, 12],
  [25, 7, 34, 48],
  [4, -10, 18, 21],
  [-72, -3, -17, -10]
]));

Upvotes: 2

kockburn
kockburn

Reputation: 17616

It would appear you're simply looking for the max of each array.

Using Array#map and Math#max and spread syntax you could do something like this.

const data = [[17, 23, 25, 12], [25, 7, 34, 48], [4, -10, 18, 21], [-72, -3, -17, -10]];

const res = data.map(arr=>Math.max(...arr));

console.log(res);

Upvotes: 3

Related Questions