如何在JavaScript中获取对象数组内元素的X属性最小值
实现方法
以下均为JavaScript场景下的实现方案:
- 方法1:
Math.min+ 数组map(代码最简洁,适合小规模数组)
var array = [{x:500, y:400}, {x:80, y:400}, {x:900, y:400}]; // 提取所有x值传入Math.min计算最小值 const minX = Math.min(...array.map(item => item.x)); console.log(minX); // 输出 80
说明:先通过map遍历数组提取所有x属性值生成新数组,再用展开运算符将数组元素传入Math.min方法直接得到最小值。
- 方法2:
reduce聚合计算(性能更优,适合大规模数组,无需生成中间数组)
const minX = array.reduce((currentMin, item) => { return Math.min(currentMin, item.x); }, Infinity);
说明:初始值设为Infinity(无穷大),遍历数组时逐个对比更新最小值,数组为空时会返回Infinity,可根据需求额外添加空数组校验逻辑。
- 如果需要同时获取最小x值对应的完整对象,可以修改reduce逻辑:
// 注意需先判断数组非空,否则array[0]为undefined会报错 if (array.length > 0) { const minXItem = array.reduce((minItem, currentItem) => { return currentItem.x < minItem.x ? currentItem : minItem; }, array[0]); console.log(minXItem.x); // 输出80 console.log(minXItem); // 输出{x:80, y:400} }
内容的提问来源于stack exchange,提问作者Prograbit
相关产品推荐
相关产品推荐

