JavaScript,array.sort()仅基于其中一个的两个数组

我刚刚发现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;
        }
    }
}

我要为内置排序写什么来做等效的工作?

解决方法:

这只需要一点修改.而不是存储两个数组,而是使用一个具有两个属性的对象存储一个数组.然后,您可以执行类似的操作.

arr.sort(functiona(a,b){return a.rowWidth-b.rowWidth});

该对象必须包含属性rowWidth和rowCatagories

上一篇:Spring Security教程(八):用户认证流程源码详解


下一篇:如何使用PHP对数组进行排序