📅  最后修改于: 2023-12-03 14:42:39.870000             🧑  作者: Mango
在JavaScript中,我们经常会操作对象数组,而有时候我们需要找到数组中某个属性的最大值或最小值。下面是几种实现方法。
通过循环遍历数组,并使用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()方法来获取最大值和最小值。
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()方法,将数组按价格属性排序,然后获取第一个和最后一个元素即可。
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
以上三种方法都可以实现在对象数组中获取属性的最大值和最小值,具体使用哪种方法可以根据实际场景选择。