7

我有一个关联数组,如下所示:

var data = {
    0: {
        'Number_of_Something': 212
    },
    1: {
        'Number_of_Something': 65
    },
    2: {
        'Number_of_Something': 657
    }
}

我需要提取字段中的最大值Number_of_Something,但是,因为它是对象的对象内的字段,所以它比仅遵循类似于此处概述的方法要复杂一些。

遍历对象并存储值,然后在下一个更大时替换它似乎是最简单和明显的选择。

我只是在问这个问题,以防除了上述方法之外还有更简单(更智能)的方法来实现这一目标?

4

2 回答 2

17

更简单可能是主观的......实现您所要求的另一种方法是使用Object.keysArray.prototype.map获取值数组,并使用您链接的Math.max的其他解决方案:

var data = {
    0: {
        'Number_of_Something': 212
    },
    1: {
        'Number_of_Something': 65
    },
    2: {
        'Number_of_Something': 657
    }
}

var max = Math.max.apply(null,
                        Object.keys(data).map(function(e) {
                                return data[e]['Number_of_Something'];
                        }));
于 2013-04-15T11:18:31.000 回答
0

您可以创建自己的 (for) 循环并以这种方式返回最大值。另一种选择是使用像Underscore.js这样的库来为您处理此问题并保持您的代码可读性。

于 2013-04-15T11:10:03.513 回答