0

我有一个对象,其中包含不同的键及其值作为数组。

前任。

Obj = {
    adj_qty :[10,50], //With close to 50k elements.
    attr_no :["DNF","DNF"],
    qty :["10","50"],
    art_code :["8903ABC4793","8903328757534"],
    cost :[377.95,241.75]
}

现在我想根据 key 对所有数组进行排序art_code

有没有最好的方法来对这些数组进行排序?

注意:每个数组都有周围的50k数组元素。所以我用这种方式将所有这些构建在单个对象而不是数组中的对象中。

感谢和问候。

4

1 回答 1

1
var sortStack = []
  ,       len = Obj.art_code.length
  ;

// Sort by art_code, storing the sorting results
Obj.art_code.sort( function( a, b ){
    var res = (a>b)?-1:1; // This controls the sorting order
    sortStack.push( res );

    return res;
});

// sort everything else in the same order
for( var n in Obj ){
    if( !Obj.hasOwnProperty( n ) || ( n === 'art_code' ) ){ continue; }

    var ary = sortStack.slice();

    // sort anything that is an array of the same length
    Obj[n].sort
      && ( Obj[n].length === len )
      && Obj[n].sort( function(){ return ary.shift(); } );
}
于 2013-06-17T06:40:24.440 回答