如何创建最低数字的变量



我在这里拥有的是一种算法,该算法在每个子阵列中找到最高值,然后将其推到一个单独的数组(最终)。

我想让变量"值"等于最低数字,以便任何负数都可以被认为高于'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]]));

在此示例中,最后一个子阵列返回0,因为该子阵列中的数字的非数字高于"值"的初始值,即0。

我希望它返回'-3',因为它是子阵列中的最高数字。

似乎您只是在寻找每个数组的最大值。

使用数组#映射和数学#最大和传播语法您可以做这样的事情。

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

您只能将value设置为Number.NEGATIVE_INFINITY,但是对于它的价值,我建议简单地将reduce而不是在您的内部功能中使用map。这样,内部循环将以sub[0]作为初始值开头,而不是取决于任何占位符。

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]
]));

最新更新