【发布时间】:2013-07-02 01:37:14
【问题描述】:
我刚刚发现array.sort(),看到我可以指定如何排序:(示例取自http://www.w3schools.com/jsref/jsref_sort.asp)
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return a-b});
我一直在使用冒泡排序手动进行排序,因为数组很小,但我想知道是否可以使用 array.sort() 代替它:
// Sort rowCategories[i] by rowWidth[i]
swapped = true;
while (swapped) {
swapped = false;
for (var i = 0; i < rowCategories.length-1; i++) {
if (rowWidth[i] < rowWidth[i+1]) {
var swap = rowCategories[i];
rowCategories[i] = rowCategories[i+1];
rowCategories[i+1] = swap;
swap = rowWidth[i];
rowWidth[i] = rowWidth[i+1];
rowWidth[i+1] = swap;
swapped = true;
}
}
}
我会为内置排序写什么来完成相同的工作?
【问题讨论】:
-
您可以对对象数组进行排序...(而 w3school 不是很好。作为参考,您可能希望看到
Array.sorton MDN 代替) -
我同意,如果您将两个值都存储在一个对象中,那么您可以简单地使用
sort。 -
rowCategories[]是一个对象数组(我认为它是一个类),所以我应该让rowWidth[]成为它的一部分? -
是的,只需为每个元素添加一个
width:属性。 -
是的,如果可能,我会使用这种方法。
标签: javascript arrays sorting