📌  相关文章
📜  JavaScript中对象数组中属性的最大值最小值(1)

📅  最后修改于: 2023-12-03 14:42:39.870000             🧑  作者: Mango

JavaScript中对象数组中属性的最大值和最小值

在JavaScript中,我们经常会操作对象数组,而有时候我们需要找到数组中某个属性的最大值或最小值。下面是几种实现方法。

方法一:使用Math.max()和Math.min()

通过循环遍历数组,并使用Math.max()和Math.min()方法来获取最大值和最小值。

const arr = [
    { name: 'apple', price: 1.50 },
    { name: 'banana', price: 0.99 },
    { name: 'orange', price: 1.25 },
    { name: 'kiwi', price: 2.30 },
];

let max = arr[0].price, min = arr[0].price;

for (let i = 1; i < arr.length; i++) {
    max = Math.max(max, arr[i].price);
    min = Math.min(min, arr[i].price);
}

console.log('Max price:', max); // Output: Max price: 2.3
console.log('Min price:', min); // Output: Min price: 0.99
方法二:使用reduce()

使用reduce()方法来获取最大值和最小值。

const arr = [
    { name: 'apple', price: 1.50 },
    { name: 'banana', price: 0.99 },
    { name: 'orange', price: 1.25 },
    { name: 'kiwi', price: 2.30 },
];

const max = arr.reduce((prev, current) => prev.price > current.price ? prev : current).price;
const min = arr.reduce((prev, current) => prev.price < current.price ? prev : current).price;

console.log('Max price:', max); // Output: Max price: 2.3
console.log('Min price:', min); // Output: Min price: 0.99
方法三:使用sort()

通过使用sort()方法,将数组按价格属性排序,然后获取第一个和最后一个元素即可。

const arr = [
    { name: 'apple', price: 1.50 },
    { name: 'banana', price: 0.99 },
    { name: 'orange', price: 1.25 },
    { name: 'kiwi', price: 2.30 },
];

arr.sort((a, b) => a.price - b.price);

const max = arr[arr.length - 1].price;
const min = arr[0].price;

console.log('Max price:', max); // Output: Max price: 2.3
console.log('Min price:', min); // Output: Min price: 0.99

以上三种方法都可以实现在对象数组中获取属性的最大值和最小值,具体使用哪种方法可以根据实际场景选择。