Javascript 获取最高的建筑物名称和高度
我有一个项目,我创建了一个嵌套的数据结构来查找最高的建筑名称和高度 以下是数据:Javascript 获取最高的建筑物名称和高度,javascript,arrays,Javascript,Arrays,我有一个项目,我创建了一个嵌套的数据结构来查找最高的建筑名称和高度 以下是数据: let buildings =[ { name: "Burj Khalifa", height: 828 }, { name: "Shanghai Tower", height: 632 }, { name: "Lotte Tower", height: 555 },
let buildings =[
{
name: "Burj Khalifa",
height: 828
},
{
name: "Shanghai Tower",
height: 632
},
{
name: "Lotte Tower",
height: 555
},
{
name: "CTF Finance Centre",
height: 803
}
];
这就是解决方案:
function getTallestBuilding() {
let height = 0;
let buildingName = "";
for (let building = 0; building < buildings.length; building++) {
height = Math.max.apply(Math, buildings.map(function (o) {return o.height;
}));
buildingName = buildings[building].buildingName;
}
console.log("The tallest building's height is " + height + " and the name is " + buildingName);
}
函数gettalestbuilding(){
设高度=0;
让buildingName=“”;
对于(让building=0;building最高建筑的高度是828,名字是哈利法塔
使用
出租房屋=[
{
名称:“哈利法塔”,
身高:828
},
{
名称:“上海大厦”,
身高:632
},
{
名称:“乐天大厦”,
身高:555
},
{
名称:“CTF金融中心”,
身高:803
}
];
const tallestObj=建筑物。减少((a,b)=>a.高度>b.高度?a:b);
console.info(`最高建筑物的高度为${tallestObj.height},名称为${tallestObj.name}`)
您正在循环数组中的每个元素,因此循环完成后,名称
是循环中的最后一个元素。为什么不对数组进行排序,然后抓住第一个/最后一个元素(取决于排序方向)以获得最高的值?@Taplar您可以这样做,但效率较低,因为这是O(n log(n))你可以在O(n)中做,就像OP正在做的一样。另外,你正在计算数组的max
高度4次!您正在循环中进行每一次迭代。@DanielWStrimpel没有争论统计数据,但给定4个元素或实际数据,这真的很重要吗?谢谢您,我很好奇,但a和b做了什么?@reiko添加了链接。这只是比较两座建筑a
是一栋建筑,b
是一栋建筑。