gpt4 book ai didi

javascript - 排列 Javascript 数组

转载 作者:行者123 更新时间:2023-12-02 17:47:15 26 4
gpt4 key购买 nike

我有一系列汽车和每辆车对应的一系列价格。

我想实现函数highest3,它将返回一个由3辆车组成的数组,按价格排序(从最高到最低)。

但是,如果价格相等,则会按字母顺序返回汽车。

在下面的示例中,“Hummer”将是第一个条目。

代码

var cars = ["Ferrari", "Lamborghini", "Jaguar", "Hummer", "Toyota"];
var price = [12, 34.5, 3.54, 45.9, 3.44];

result == ["Hummer", "Lamborghini", "Ferrari"];

function highest3 (cars, price) {

//Please help me here.

}

有人可以帮我实现最高3功能吗?我是新手。谢谢。

最佳答案

这里有一个适合您的解决方案。首先,它创建一个由对象组成的数组,这些对象代表汽车及其关联值(joinCarPrices)。

然后我们使用自定义排序函数 priceSort 通过 Array#sort 执行排序。功能。它根据您要求的算法对汽车进行排序。最后,我们使用 Array#slice只拥有 3 辆价格最高的汽车。

var cars = ["Ferrari", "Lamborghini", "Jaguar", "Hummer", "Toyota"],
price = [12, 34.5, 3.54, 45.9, 3.44],
result,
joinCarPrices = function () {
var index = 0,
carPrices = [];

for (index = 0; index < cars.length; index++) {
carPrices[index] = {
'car': cars[index],
'price': price[index]
};
}

return carPrices;
},
priceSort = function (a, b) {
// If the first car is less than the second car
if (a.price < b.price) {
return 1;
} else if (a.price > b.price) {
// If the first car is more than the second car
return -1
} else {
// Else sort by the car name
return a.car < b.car ? -1 : 1;
}
};

cars = joinCarPrices(); // Join the Cars/Prices together as Objects, into an array
result = cars.sort(priceSort); // Sort the Cars based on the Price Sort function
result = result.slice(0, 3); // Slice to only give us array items 0-3
console.log(result);

这是一个JSFiddle显示它正在工作!

关于javascript - 排列 Javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21652533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com