排序字符串值js

时间:2019-12-14 20:59:19

标签: javascript

我有一个看起来像这样的数组:

0123456789123456:14
0123456789123456:138
0123456789123456:0

基本上,我需要按从大到小的顺序对它们进行排序,但要按冒号后面的数字进行排序。我知道排序功能有点奇怪,但是我不确定如何在不将冒号之前的id从后面的值断开的情况下做到这一点。

4 个答案:

答案 0 :(得分:2)

将字符串拆分为第二个值并按增量排序。

const second = s => s.split(':')[1];

var array = ['0123456789123456:14', '0123456789123456:138', '0123456789123456:0'];

array.sort((a, b) => second(b) - second(a));

console.log(array);

答案 1 :(得分:2)

假设数组中各项的结构是已知的(如所述),则可以像这样对它进行排序。

const yourArray = ['0123456789123456:14', '0123456789123456:138', '0123456789123456:0'];
yourArray.sort((a, b) => (b.split(':')[1] - a.split(':')[1]));

console.log(yourArray);

答案 2 :(得分:0)

您可以像这样使用sort()和reverse()(在浏览器控制台中尝试):

var arrStr = [
  '0123456789123456:14',
  '0123456789123456:138',
  '0123456789123456:0'
];

arrStr.sort();

console.log(arrStr);

arrStr.reverse();

console.log(arrStr);

答案 3 :(得分:-1)

您可以使用以下助手在javascript中对字符串数组进行排序:

data.sort((a, b) => a[key].localeCompare(b[key]))
相关问题