当前位置:  开发笔记 > 编程语言 > 正文

如何在数组数组中的相同索引处获取最大值?

如何解决《如何在数组数组中的相同索引处获取最大值?》经验,为你挑选了1个好方法。

我有这样的数据:

data = [
   [{a: "b", value: 12}, {a: "bb", value: 39}, {a: "bb",  value: 150}],
   [{a: "c", value: 15}, {a: "cc", value: 83}, {a: "ccc", value: 12}],
   [{a: "d", value: 55}, {a: "dd", value: 9},  {a: "dd",  value: 1}]
]

我想在这个数据中获得相同索引的最大值,所以我希望结果如下:

[55, 83, 150]

现在,我可以获取对象中的每个值,如果指定索引,我可以获得最大值.我不确定如何使用每个索引.

let array = [];
data.map((eachArr, index) => {
   array.push(eachArr[0].value)

   for(let i = 0; i < eachArr.length; i++){
     console.log('eachArr[i].value', eachArr[i].value, i);
   }
})
console.log(Math.max(...array)) ===> 55

我怎样才能做到这一点?

我认为人们误解了我的问题.我不想要每个数组的最大值.我希望value每个数组中具有相同索引的最大值.所以我希望55,13,​​55,83分别来自39分,83分,9分和150分,分别是150分,12分,1分.我很抱歉没有具体.我应该有一个不同长度的例子.



1> Pranav C Bal..:

使用Array#reduce方法和Array#forEach方法.

var data = [[{ a: "b",value: 12}, { a: "bb",value: 39 }, { a: "bb", value: 150 }], [{   a: "c",   value: 15 }, {   a: "cc",   value: 83 }, {   a: "ccc",   value: 12 }], [{   a: "d",  value: 55 }, {   a: "dd",   value: 9 }, {   a: "dd",   value: 1 }]];


console.log(
  // iterate over the array
  data.reduce(function(arr, ele) {
    // iterate over the inner array
    ele.forEach(function(o, i) {
      // check element present at the index, if not then update with current value
      arr[i] = arr[i] || o.value;
      // check assign greatest value by comparing with previous value
      arr[i] = arr[i] < o.value ? o.value : arr[i];
      
      // you can combine above two lines
      // arr[i] = !arr[i] || arr[i] < o.value ? o.value : arr[i];
      
    });
    // return the array reference
    return arr;
    // set initial value as an empty array
  }, [])
)


// without any comments
console.log(
  data.reduce(function(arr, ele) {
    ele.forEach(function(o, i) {
      arr[i] = !arr[i] || arr[i] < o.value ? o.value : arr[i];
    });
    return arr;
  }, [])
)
推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有