排序 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)
在尝试创建 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)