【问题标题】:How to find the biggest value for from nested array Object in javascript?如何从javascript中的嵌套数组对象中找到最大值?
【发布时间】:2017-05-06 21:16:47
【问题描述】:

我对 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' } 
                ],

【问题讨论】:

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


    【解决方案1】:

    你可以使用 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);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      • 2019-04-22
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多