javascript - 从 JavaScript 对象中的键查找最高值

标签 javascript

我有以下对象:

var questions = [{
    'question_id': 245,
    'question': 'Question 1',
    'ordinal': 1,
    'master_difficulty': 1,
    'overridden_difficulty': ''
},{
    'question_id': 34,
    'question': 'Question 2',
    'ordinal': 2,
    'master_difficulty': 1,
    'overridden_difficulty': ''
},{
    'question_id': 656,
    'question': 'Question 3',
    'ordinal': 3,
    'master_difficulty': 1,
    'overridden_difficulty': ''
},{
    'question_id': 86,
    'question': 'Question 4',
    'ordinal': 4,
    'master_difficulty': 1,
    'overridden_difficulty': ''
}]

我想从中获得最高的序数值。

例如var highestOrdinal = highestOrdinalFunction(questions);

哪里highestOrdinalFunction将返回最大序数。

所以在这种情况下它将返回 4 .

可以Math.max为此工作?

最佳答案

Array#reduce ( spec | MDN ) 是执行以下操作的惯用方法:

function highestOrdinalFunction() {
    return questions.reduce(function(previous, entry) {
        return previous === undefined || entry.ordinal > previous ? entry.ordinal : previous;
    }, undefined);
}

Array#reduce 重复调用回调,传入回调之前的返回值,该值以 reduce 的第二个参数作为种子。这个东西通常被称为归约操作的“累加器”。 reduce 的结果是累加器的最终值。

如果questions为空,上面将返回undefined

关于javascript - 从 JavaScript 对象中的键查找最高值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35938824/

相关文章:

javascript - 创建一个简单的 google books api

javascript - 为什么对象名前需要 "function"关键字?所有对象都是真实的功能?

javascript - 我想在斐波那契数列的javascript中的字符串末尾添加逗号

javascript - 在react redux中唯一地计算某些元素

javascript - 从具有特定 id 的对象的数组生成新数组

javascript - 按条件过滤,带断路取n

javascript - 为什么 JavaScript 函数总是有返回值?

javascript - 网页未调整大小 - 代码中没有约束

javascript - 使用 javascript 检查 <ul> 中有多少 <li>

javascript - AngularJS:如何在 View 上方打开模式作为对哈希更改的响应 (ngView/$routeProvider)