gpt4 book ai didi

javascript - 对象数组的最小值/最大值

转载 作者:数据小太阳 更新时间:2023-10-29 05:17:06 28 4
gpt4 key购买 nike

在 SO 上和“网络”周围,它几乎已经完成了。但是我想知道是否有一种方法可以利用以下标准的最小/最大函数:

Array.max = function(array) {
return Math.max.apply(Math, array);
};

Array.min = function(array) {
return Math.min.apply(Math, array);
};

所以我可以搜索对象数组,例如:

function Vector(x, y, z) { this.x = x; this.y = y; this.z = z; }
var ArrayVector = [ /* lots of data */ ];
var min_x = ArrayVector.x.min(); // or
var max_y = ArrayVector["y"].max();

目前我必须遍历数组并手动比较对象值,并根据循环的特定需要制作每个值。一个更通用的方法会很好(如果稍微慢一点)。

最佳答案

您可以对 Array.minmax 方法进行一些更改以接受属性名称,在数组中提取每个对象的属性,借助于Array.prototype.map ,以及这些提取值的最大值或最小值:

Array.maxProp = function (array, prop) {
var values = array.map(function (el) {
return el[prop];
});
return Math.max.apply(Math, values);
};

var max_x = Array.maxProp(ArrayVector, 'x');

我只想提一下,Array.prototype.map 方法将在几乎所有现代浏览器上可用,它是 ECMAScript 5th Edition Specification 的一部分。 ,但 Internet Explorer 没有它,但是您可以轻松地包含一个类似于 Mozilla Developer Center 上的实现.

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

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