在Object:Javascript中排序数组
我有一个对象,它包含不同的键&它们的值作为数组 前 现在我想根据key在Object:Javascript中排序数组,javascript,sorting,Javascript,Sorting,我有一个对象,它包含不同的键&它们的值作为数组 前 现在我想根据keyart\u code对这些数组进行排序 有没有最好的方法来对这类数组进行排序 注意:每个数组大约有50k数组元素。所以我用这种方法在单个对象中构造所有这些对象,而不是数组中的对象 谢谢,各位。为什么不制作一个对象数组而不是数组对象呢?此外,数组元素的排序顺序是什么(例如,从开始到结束对每个字符进行比较,数字比较(?),等等?对于您当前的数据结构,这是非常低效的。正如@Qantas 94 Heavy所提到的,您可以使用对象数组,
art\u code
对这些数组进行排序
有没有最好的方法来对这类数组进行排序
注意:每个数组大约有
50k
数组元素。所以我用这种方法在单个对象中构造所有这些对象,而不是数组中的对象
谢谢,各位。为什么不制作一个对象数组而不是数组对象呢?此外,数组元素的排序顺序是什么(例如,从开始到结束对每个字符进行比较,数字比较(?),等等?对于您当前的数据结构,这是非常低效的。正如@Qantas 94 Heavy所提到的,您可以使用对象数组,它将帮助您轻松排序。您应该以某种方式链接内部数组,以通过其中一个键对所有数组进行排序。否则将导致混乱。最好更改结构。每个数组大约有
50K
元素大小e、 如果我构造了一个对象数组,那么这将重复我的键50K
次。这就是为什么我更喜欢这种方式。@Qantas94Heavy,@tejas,@i100:你们不考虑在每个数组元素中重复对象的50K
键吗?非常感谢,我正在寻找的是一样的…)
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(); } );
}
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(); } );
}