排序 javascript 数组切片

sorting javascript array slice

在尝试创建 sortable table 时,我正在对底层数据数组进行排序:

var g = [
   [ 'First Name', 'Last Name', 'Id', 'Age'],
   [ 'Joe', 'Blogs', '1', 24],
   [ 'Fred', 'Frog', '2', 18],
];

我想对除 header 以外的所有内容进行排序。

g = g.sort(mycomparison);

不好,尽管我可以更改比较例程以始终将元素 [0] 放在其他所有元素的前面。

相反,我想对 header 以外的所有内容进行排序。以下似乎是我想要的,但我想知道 javascript 中是否有更好的表达方式。我想对最后的 n-1 个元素进行排序。

g = g.slice(0,1).concat(g.slice(1,g.length-1).sort(mycomparison))

如果您对另一种看起来更整洁的方式感兴趣,请参阅以下 underscore.js 方式:

g =  [].concat(_.first(g), _sort(_.tail(g), mycomparison ));

使用下划线无助于提高性能,但它只会简化并使您的代码更具可读性。从上面的例子来看,我相信即使不经常使用下划线的人也能理解。

它简单明了且符合语义,因此人们阅读它并立即理解它拆分数组 g 的第一个和其余部分,对其余部分进行排序并重新加入它们。 (对我来说,它看起来比原版更具可读性 JavaScript)