var global=[];
var value=[50,1,4,29];
var title=["d","b","c","a"];
title.forEach(function(title,i) {
global[title]=value[i];
})
我想按值对全局数组进行排序,但我无法弄清楚如何。
我确切地说我不能使用任何库jquery,下划线......
谢谢!
目标是知道哪个对象的价值较低。 a,b,c,d的值为50,1,4,29
我可以对值进行排序,但如何知道与此值关联的名称是什么?
答案 0 :(得分:0)
您未正确使用global[]
作为循环中的数组。您无法使用[title]
引用数组项,您可以push
引用数组global.push(value[i])
或使用global[i] = value[i]
。如果您使用这些方法中的任何一种,您只需拨打' global.sort()'排序将给你[1, 29, 4, 50]
的数组。如果要将数组用作多维,则需要将循环更改为:
title.forEach(function(title,i) {
global[i] = {};
global[i][title]=value[i];
})
将为您提供[Object { d=50}, Object { b=1}, Object { c=4}, Object { a=29}]
如果你想对它进行排序,你可以使用sort,它可以使用一个函数来编写你的自定义排序器,但我不认为你可以使用它,因为你的所有键都不同。如果您的所有密钥都相同,请说'value'
,即[Object { value=50}, Object { value=1}, Object { value=4}, Object { value=29}]
,您可以这样做:
global.sort(function(a,b) {
return parseInt(a.value, 10) - parseInt(b.value, 10);
});
但由于所有键都不同,因此无法应用于您的阵列。