javascript - 如何在 JavaScript 的数组列表中找到最大的数组值

标签 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);
    }
}

最佳答案

我认为你可以简化很多:

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

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

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

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

这就是 .apply() 的用武之地。当您想要一个参数列表,但您得到的是一个数组时, .apply() 是你的 friend 。因此,我们只需要使用 .apply() 调用 Math.max() — 并将 Math 作为 this 值,因为一些 native 函数对此很挑剔——然后数组作为第二个参数。

关于javascript - 如何在 JavaScript 的数组列表中找到最大的数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25456771/

相关文章:

javascript - 匿名函数: "object is not a function"

javascript - 将脚本 src 存储在数组中

python字典每年的总和和平均值

javascript - 将多个脚本和 css 标签分解为一个文件

javascript - 当我使用 === 而不是 !== 时,为什么更改 "if"条件会给出不同的答案?

c - C中的动态内存分配二维数组

python - 为什么数组的直接索引比迭代快得多?

PHP 中的 Javascript 回显结果

javascript - 使用 javascript、html 和 ajax 发送电子邮件

javascript - 构建 DOM 中任何给定节点的 querySelector 字符串值