作者:谢超4444 | 来源:互联网 | 2023-05-18 17:14
所以我尝试将冒泡排序技术应用于关联数组.
我尝试的是制作一个普通的数组,然后应用冒泡排序.这工作,所以现在我正在尝试为我的关联数组做同样的事情,但我不明白为什么它不起作用,有人可以解释并告诉我如何做到这一点?
正常数组冒泡排序代码: <- 这个有效
var numbers= new Array()
numbers[0] = 22;
numbers[1] = 3;
numbers[2] = 65;
numbers[3] = 75;
numbers[4] = 500;
numbers[5] = 2;
numbers[6] = 44;
for(var i=0; i
关联数组冒泡排序代码: <- 不起作用
var celsius= new Array()
celsius["Monday"] = 22;
celsius["Tuesday"] = 3;
celsius["Wednesday"] = 65;
celsius["Thursday"] = 75;
celsius["Friday"] = 1;
celsius["Saterday"] = 2;
celsius["Sunday"] = 44;
for(var temp in celsius)
{
if(celsius[temp]
任何人都可以告诉我,我试图应用的方法是否可行?
提前致谢!
1> JLRishe..:
你的尝试不起作用有几个原因,但你的假设有一个根本的缺陷:对象中属性的顺序是未定义的,所以你不应该尝试重新排列它们.
没有理由为此使用排序.只需浏览一次对象并找到最低值:
var min = Infinity;
for(var day in celsius) {
if(celsius[day]
一个更好的解决方案:
var celsius = [];
celsius["Monday"] = 22;
celsius["Tuesday"] = 3;
celsius["Wednesday"] = 65;
celsius["Thursday"] = 75;
celsius["Friday"] = 1;
celsius["Saterday"] = 2;
celsius["Sunday"] = 44;
var min = Object
.keys(celsius)
.map(function(key) {
return celsius[key];
})
.reduce(function(last, next) {
return last