如何在javascript中找到嵌套数组对象的最大值?

时间:2016-12-21 12:34:11

标签: javascript arrays node.js object multidimensional-array

我对javascript很新。我有点困惑,如何从嵌套数组中找到特定数组对象的最大值。例如

如果我们有这样的巨大阵列......

 [ 
    .....
     [ { id: 0, value: 13, jobs: [Object], name: 'M1' },
            { id: 1, value: 19, jobs: [Object], name: 'M2' } ],

          [ { id: 0, value: 13, jobs: [Object], name: 'M1' },
            { id: 1, value: 19, jobs: [Object], name: 'M2' } ],

          [ { id: 0, value: 19, jobs: [Object], name: 'M1' },
            { id: 1, value: 13, jobs: [Object], name: 'M2' } ],

          [ { id: 0, value: 21, jobs: [Object], name: 'M1' },
            { id: 1, value: 11, jobs: [Object], name: 'M2' } ],

          [ { id: 0, value: 19, jobs: [Object], name: 'M1' },
            { id: 1, value: 13, jobs: [Object], name: 'M2' } ],

          [ { id: 0, value: 11, jobs: [Object], name: 'M1' },
            { id: 1, value: 21, jobs: [Object], name: 'M2' } ] 
....
    ]

如何借助嵌套数组中的valueObject帮助在每个数组对象值中找到最大值。 对不起,我并不擅长提出我的问题 但看看这个例子......

[ 
        .....
             //Higest value of the value Object in below Array Object is 19
            [ 
            { id: 0, value: 13, jobs: [Object], name: 'M1' },
                { id: 1, value: 19, jobs: [Object], name: 'M2' } 
            ],
          //Higest value of the value Object in below Array Object is 18
              [ 
                { id: 0, value: 13, jobs: [Object], name: 'M1' },
                { id: 1, value: 18, jobs: [Object], name: 'M2' } 
             ],
          //Higest value of the value Object in below Array Object is 21
              [ 
                { id: 0, value: 21, jobs: [Object], name: 'M1' },
                { id: 1, value: 13, jobs: [Object], name: 'M2' }
              ],


    ....
        ]

我的结果应该是这样的 只打印像这样的最低数组对象

//Higest value of the value Object in below Array Object is 18
                  [ 
                    { id: 0, value: 13, jobs: [Object], name: 'M1' },
                    { id: 1, value: 18, jobs: [Object], name: 'M2' } 
                 ],
 //Higest value of the value Object in below Array Object is19
                [ 
                { id: 0, value: 13, jobs: [Object], name: 'M1' },
                    { id: 1, value: 19, jobs: [Object], name: 'M2' } 
                ],

1 个答案:

答案 0 :(得分:0)

您可以使用Lodash库来获取它。

可从https://lodash.com

获取

以下是如何使用Loadash执行此操作的示例:

首先,让我们假设您的数据结构为:

var myArray = [ 
      [ { id: 0, value: 13, jobs: [Object], name: 'M1' },
            { id: 1, value: 19, jobs: [Object], name: 'M2' } ],

      [ { id: 0, value: 13, jobs: [Object], name: 'M1' },
        { id: 1, value: 19, jobs: [Object], name: 'M2' } ],

      [ { id: 0, value: 19, jobs: [Object], name: 'M1' },
        { id: 1, value: 13, jobs: [Object], name: 'M2' } ],

      [ { id: 0, value: 21, jobs: [Object], name: 'M1' },
        { id: 1, value: 11, jobs: [Object], name: 'M2' } ],

      [ { id: 0, value: 19, jobs: [Object], name: 'M1' },
        { id: 1, value: 13, jobs: [Object], name: 'M2' } ],

      [ { id: 0, value: 11, jobs: [Object], name: 'M1' },
        { id: 1, value: 21, jobs: [Object], name: 'M2' } ] 
];

您可以使用Loadash为每个子数组找到更大的值:

_.forEach(myArray, function(subArray) {
    var subArrayValues = _.map(subArray, function (o) { 
        return o.value;
    });

    var subArrayMaxValue = _.max(subArrayValues);
    var subArrayMinValue = _.min(subArrayValues);

    console.log("Higest value of the value Object in below Array Object is " + subArrayMaxValue);
    console.log("Lowest value of the value Object in below Array Object is " + subArrayMinValue);
    console.log(subArray);
});