如何从数组中查找最大数字,但仅从javascript中的选定元素中查找

时间:2018-05-25 07:28:57

标签: javascript

这是我想要找到最大数据的数组。

INSTALLED_APPS = [
    'anthology.apps.JazzManoucheConfig',
    # ...
]

这里的输出是444,它工作正常。但现在,我想从选定的索引中选择最大值。我将这些索引存储在此数组中。

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

现在,available = [0,2,3];的索引0,2,3是43,44,6

我希望显示43,因为它是所选索引的最大值。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

将标记映射到值,然后在这些值上调用Math.max

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

答案 1 :(得分:0)

您可以创建一个可重复使用的函数,该函数将使用自定义逻辑来检查最高编号,而不是使用Math.max()。使用可重用功能将帮助您缩放代码而无需重复逻辑。

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

答案 2 :(得分:0)

您还可以通过过滤number.abc数组来查看此内容。

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