一部吸引所有背景的观众观看的假日电影。推动一个坚持多元价值观的时代将经受时间的考验。经验的多样性可以团结所有人,并在充满回声室和Twitter暴民的敌对文化中消除仇恨。一部可以介绍进入新世纪的公开对话的电影。这部电影将是巨大的。
您可以先按priority_level分组,然后按检查是否priority_level
以数字开头和按进行排序priority_date
。
const
hasNumber = s => /^\d+/.test(s),
input = [{ priority_level: 'P ', priority_date: '1980-02-08T00:00:00.000Z' }, { priority_level: '1 ', priority_date: '2004-06-29T00:00:00.000Z' }, { priority_level: 'C ', priority_date: '2004-06-29T00:00:00.000Z' }, { priority_level: '5 ', priority_date: '2005-02-15T00:00:00.000Z' }, { priority_level: '1 ', priority_date: '2005-02-15T00:00:00.000Z' }, { priority_level: '1 ', priority_date: '2005-02-15T00:00:00.000Z' }],
result = [...input
.reduce((m, o) => m.set(o.priority_level, [...(m.get(o.priority_level) || []), o]), new Map)
.values()
].flat();
result.sort((a, b) =>
hasNumber(a.priority_level) - hasNumber(b.priority_level) ||
a.priority_date > b.priority_date || -(a.priority_date < b.priority_date)
);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
与lodash
const
hasNumber = s => /^\d+/.test(s),
input = [{ priority_level: 'P ', priority_date: '1980-02-08T00:00:00.000Z' }, { priority_level: '1 ', priority_date: '2004-06-29T00:00:00.000Z' }, { priority_level: 'C ', priority_date: '2004-06-29T00:00:00.000Z' }, { priority_level: '5 ', priority_date: '2005-02-15T00:00:00.000Z' }, { priority_level: '1 ', priority_date: '2005-02-15T00:00:00.000Z' }, { priority_level: '1 ', priority_date: '2005-02-15T00:00:00.000Z' }],
result = _(input)
.groupBy('priority_level')
.map(array => array)
.flatten()
.sortBy([
o => hasNumber(o.priority_level),
'priority_date'
])
.values();
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句