如何在JavaScript中的arraylist中找到最大的数组值

时间:2014-08-22 23:06:46

标签: javascript arrays

我有一个包含以下格式元素的数组。我尝试的是,我收集了所有edtime并将它们放入edtimearray。我试图找到数组值中最大的一个。我用过这样的东西。但是我得到了消息"对象不支持这个动作"

var edtimearray = [];
for (var i = 0; i <= obj.length - 1; i++) {
    edtimearray = obj[i].edtime;
    if (i == obj.length - 1) {
        var arrayMax = Function.prototype.apply.bind(Math.max, edtimearray);
    }
}

2 个答案:

答案 0 :(得分:7)

我认为你可以简化这一点:

var max = Math.max.apply(Math, obj.map(function(o) { return o.edtime; }));

因此,您从一个对象数组开始,并且您需要来自这些对象的属性值数组。 JavaScript(遗憾的是)没有标准的&#34;采摘&#34;方法,因此您使用.map()来构建这些属性值的数组。

现在你要做的是用这些属性值作为参数调用Math.max(),比如

var max = Math.max(value1, value2, ... )

.apply()进来的地方。当你想要一个参数列表时,你得到的是一个数组, .apply()是你的朋友。因此,我们只需要使用Math.max()调用.apply()并传入Math作为this值,因为某些本机函数对此很挑剔 - 然后将数组作为第二个论点。

答案 1 :(得分:-2)

这是获取数组中最大元素的好方法:

var arr = []; // some array with values
arr.sort().reverse(); // sort array ascending order
var largestVal = arr[0];