我对我现在正在从事的项目有一个要求,这对我来说有点棘手。
基本上我必须根据Text
这些项目的属性对一组项目进行排序:
这是我的物品:
var answers = [],
answer1 = { Id: 1, Text: '3-4 weeks ago' },
answer2 = { Id: 2, Text: '1-2 weeks ago' },
answer3 = { Id: 3, Text: '7-8 weeks ago' },
answer4 = { Id: 4, Text: '5-6 weeks ago' },
answer5 = { Id: 5, Text: '1-2 days ago' },
answer6 = { Id: 6, Text: 'More than 1 month ago' };
answers.push(answer1);
answers.push(answer2);
answers.push(answer3);
answers.push(answer4);
answers.push(answer5);
answers.push(answer6);
我需要分析Text
每个项目的属性,以便在排序后,数组如下所示:
answers[0] = { Id: 6, Text: 'More than 1 month ago' }
answers[1] = { Id: 3, Text: '7-8 weeks ago' }
answers[2] = { Id: 4, Text: '5-6 weeks ago' }
answers[3] = { Id: 1, Text: '3-4 weeks ago' }
answers[4] = { Id: 2, Text: '1-2 weeks ago' }
answers[5] = { Id: 5, Text: '1-2 days ago' }
逻辑是,日期越远,它的优先级越高,所以它应该出现在数组的最前面。因此,“1-2 天”的优先级低于“7-8 周”。
所以逻辑是,我需要提取数值,然后是单位(例如天、周),并根据这些细节以某种方式对数组进行排序。
老实说,我发现很难提出解决方案,我将不胜感激。
编辑:关于我正在使用的数据,它是从网络服务返回的,我没有能力更改文本。所以我必须按原样使用它。