在尝试创建可排序表时,我正在对基础数据数组进行排序:
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))
答案 0 :(得分:1)
如果您对另一种看起来有点整洁的方式感兴趣,请参阅以下 underscore.js 方式:
g = [].concat(_.first(g), _sort(_.tail(g), mycomparison ));
使用下划线无助于提高性能,但它只是简化并使您的代码更具可读性。从上面的例子中,我认为对于那些通常不使用下划线的人来说是有意义的。
它简单明了,因此人们会立即阅读并立即理解它将第一个分裂,而其余的数组g,对其余部分进行排序并重新加入。 (对我而言,它看起来比vanilla JavaScript更具可读性)