我目前正在制作一個有障礙物的游戲,我想找到具有最低 X 值的物件。下面是一個陣列的例子。
var array = [{x:500, y:400}, {x:80, y:400}, {x:900, y:400}];
我希望能夠確定該組中最低的 X 是多少(80)并將其回傳給我。有沒有辦法做到這一點?
uj5u.com熱心網友回復:
您不需要對陣列進行排序或使用外部庫。您可以使用在線性時間內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)
uj5u.com熱心網友回復:
let min = Infinity
for (var i=0; i<array.length; i ){
if (array[i].x<min) min = array[i].x
}
這里 min 是你的答案。可能有更簡單的方法來做到這一點,但他完成了作業。
uj5u.com熱心網友回復:
你可以使用 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>
uj5u.com熱心網友回復:
排序并得到第一個
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]);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/361576.html
標籤:javascript 数组 目的 分钟
下一篇:匹配物件然后計算學生成績的成績
