查找对象数组的最低值
Finding lowest value of an array of objects
我目前正在制作一个有障碍物的游戏,我想找到具有最低 X 值的对象。
这是数组的示例。
var array = [{x:500, y:400}, {x:80, y:400}, {x:900, y:400}];
我希望能够确定该组中最低的 X 是多少 (80) 并且 return 它对我来说是什么。
有什么办法吗?
你可以使用 lodash
var array = [{
x: 500,
y: 400
}, {
x: 80,
y: 400
}, {
x: 900,
y: 400
}];
console.log(_.minBy(array, 'x'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>
let min = Infinity
for (var i=0; i<array.length; i++){
if (array[i].x<min) min = array[i].x
}
这里是您的答案。可能有更简单的方法来做到这一点,但他完成了工作。
您不需要对数组进行排序或使用外部库。您可以使用 Array.prototype.reduce
在线性时间内找到最小 x
的对象:
const array = [{x:500, y:400}, {x:80, y:400}, {x:900, y:400}];
const minX = array.reduce((acc, curr) => curr.x < acc.x ? curr : acc, array[0] || undefined);
console.log(minX)
排序并获得第一个
var arr = [{
x: 500,
y: 400
}, {
x: 80,
y: 400
}, {
x: 900,
y: 400
}];
arr.sort((a, b) => a.x < b.x ? -1 : (a.x > b.x ? 1 : 0));
console.log(arr[0]);
我目前正在制作一个有障碍物的游戏,我想找到具有最低 X 值的对象。 这是数组的示例。
var array = [{x:500, y:400}, {x:80, y:400}, {x:900, y:400}];
我希望能够确定该组中最低的 X 是多少 (80) 并且 return 它对我来说是什么。 有什么办法吗?
你可以使用 lodash
var array = [{
x: 500,
y: 400
}, {
x: 80,
y: 400
}, {
x: 900,
y: 400
}];
console.log(_.minBy(array, 'x'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>
let min = Infinity
for (var i=0; i<array.length; i++){
if (array[i].x<min) min = array[i].x
}
这里是您的答案。可能有更简单的方法来做到这一点,但他完成了工作。
您不需要对数组进行排序或使用外部库。您可以使用 Array.prototype.reduce
在线性时间内找到最小 x
的对象:
const array = [{x:500, y:400}, {x:80, y:400}, {x:900, y:400}];
const minX = array.reduce((acc, curr) => curr.x < acc.x ? curr : acc, array[0] || undefined);
console.log(minX)
排序并获得第一个
var arr = [{
x: 500,
y: 400
}, {
x: 80,
y: 400
}, {
x: 900,
y: 400
}];
arr.sort((a, b) => a.x < b.x ? -1 : (a.x > b.x ? 1 : 0));
console.log(arr[0]);