Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript对包含年份的字符串数组进行排序_Javascript_Lodash - Fatal编程技术网

使用Javascript对包含年份的字符串数组进行排序

使用Javascript对包含年份的字符串数组进行排序,javascript,lodash,Javascript,Lodash,我试图按季节和年份对一系列季节进行排序,同时删除重复的季节。这样做是不够的,我想我需要一个正则表达式,但无法完成它 const myStringArray=[“冬季17”、“夏季13”、“冬季15”、“夏季12”、“冬季17”、“夏季12”、“夏季17”] console.log(q.uniq(myStringArray).sort(函数(a,b)){ 返回b-a; })); 您可以这样尝试: const myStringArray=[“冬季17”、“夏季13”、“冬季15”、“夏季12”、

我试图按季节和年份对一系列季节进行排序,同时删除重复的季节。这样做是不够的,我想我需要一个正则表达式,但无法完成它

const myStringArray=[“冬季17”、“夏季13”、“冬季15”、“夏季12”、“冬季17”、“夏季12”、“夏季17”]
console.log(q.uniq(myStringArray).sort(函数(a,b)){
返回b-a;
}));
您可以这样尝试:

const myStringArray=[“冬季17”、“夏季13”、“冬季15”、“夏季12”、“冬季17”、“夏季12”、“夏季17”]
console.log(q.uniq(myStringArray).sort(函数(a,b)){
返回b.split(“”)[1]-a.split(“”)[1]|a.localeCompare(b);
}));

您可以按年份排序,然后获取已创建数组的索引,该数组设置季节顺序。要使数组唯一,只需使用一个新集合

const myStringArray=[…新设置([“冬季17”、“夏季13”、“冬季15”、“夏季12”、“冬季17”、“夏季12”、“夏季17”)];
常量顺序=[‘冬季’、‘夏季’、‘秋季’、‘春季’];
myStringArray.sort((a,b)=>{
设s=b.split(/\s/);
设s1=a.split(/\s/);
返回编号(s1[1])-编号(s[1])| |顺序.indexOf(s[0])*-1;
});

console.log(myStringArray)
如果您确定字符串的格式始终为
,并且数字只出现一次,则可以使用快速简单的正则表达式对desc进行排序:

const myStringArray=[“冬季17”、“夏季13”、“冬季15”、“夏季12”、“冬季17”、“夏季12”、“夏季17”]
console.log(q.uniq(myStringArray).sort(函数(a,b)){
返回+b.match(/\d+/)[0]-+a.match(/\d+/)[0];
}));

预期的结果是什么?当值是字符串而不是数字时,您希望
返回b-a
如何工作?为什么要将数组转换为集合,然后将集合转换为数组?@Barmar我不知道如何对集合进行排序-是吗?不,这没有意义。为什么您首先要创建集合,而不是仅创建
const myStringArray=[“冬季17”、“夏季13”、“冬季15”、“夏季12”、“冬季17”、“夏季12”、“夏季17”]@Barmar,因为op明确要求唯一性。否则数组就不存在了unique@Barmar啊,这就是你的意思。。。我只是喜欢使用内置软件,而不是像sharm、tkx那样的librariesWorks