gpt4 book ai didi

javascript - 数组中的最大值,基于函数

转载 作者:行者123 更新时间:2023-11-28 21:03:49 25 4
gpt4 key购买 nike

我有一个对象数组。我想根据一个函数找到该数组的“最大值”,该函数返回给定 2 个对象时较大的对象。

function comparison(first, second) {
// ... arbitrary comparison based on properties...
return first; // or second
}

var a = [obj1, obj2, obj3];
var maxObj = ????(comparison);

这里要填写什么?什么是优雅又简短?

最佳答案

这样的事情应该比排序更快(取决于数据):

/*
values: array of values to test.
fn: function that takes two arguements and returns true if the first is bigger.
*/
var maximum = function(values, fn) {
var currentValue, maxValue = values.pop();
while(values.length)
maxValue = fn(maxValue, currentValue = values.pop()) ? maxValue : currentValue;
return maxValue;
}

示例:http://jsfiddle.net/SaBJ4/2/

更好的是,使用 Array.reduce :

var a = ['abc', 'defg', 'highlkasd', 'ac', 'asdh'];
a.reduce(function(a, b) { return a.length > b.length ? a : b; }); // highlkasd

关于javascript - 数组中的最大值,基于函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10343850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com