排序javascript数组切片

时间:2015-06-10 01:43:21

标签: javascript sorting slice

在尝试创建可排序表时,我正在对基础数据数组进行排序:

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

我想对除标题之外的所有内容进行排序。

g = g.sort(mycomparison);

不好,但我可以将比较例程更改为始终将元素[0]放在其他所有内容之前。

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

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

1 个答案:

答案 0 :(得分:1)

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

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

使用下划线无助于提高性能,但它只是简化并使您的代码更具可读性。从上面的例子中,我认为对于那些通常不使用下划线的人来说是有意义的。

它简单明了,因此人们会立即阅读并立即理解它将第一个分裂,而其余的数组g,对其余部分进行排序并重新加入。 (对我而言,它看起来比vanilla JavaScript更具可读性)