使用lodash通过可选属性订购JavaScript数组

肺心病

我有一个javascript数组。像这样的东西:

let myObjects = [{
        'name': 'name 1',
        'date': '2017-04-15T22:00:00Z',
        'date2': '2017-04-12T22:00:00Z' },

      { 'name': 'name 2',
        'date': '2017-04-05T22:00:00Z' },

      { 'name': 'name 3',
        'date': '2017-04-05T22:00:00Z' },

      { 'name': 'name 4',
        'date': '2017-04-12T22:00:00Z',
        'date2': '2017-04-10T22:00:00Z' }];

我想订购myObjectsdate2,但如果该对象没有这个属性,应考虑其date价值。

我可以这样做:

myObjects.map(function(obj){ if(!obj.date2){ obj['date2'] = obj['date']; }});
let orderedObjects = _.orderBy(myObjects, 'date2', true);

但是我认为这是一个棘手的解决方案。可以仅使用orderBy函数而不更改原始数组来完成此操作吗?

或Drori

使用_.orderBy()与iteratees功能。对于每个元素destruct date2,和datedate如果date2不存在,则返回

const myObjects = [{"name":"name 1","date":"2017-04-15T22:00:00Z","date2":"2017-04-12T22:00:00Z"},{"name":"name 2","date":"2017-04-05T22:00:00Z"},{"name":"name 3","date":"2017-04-05T22:00:00Z"},{"name":"name 4","date":"2017-04-12T22:00:00Z","date2":"2017-06-10T22:00:00Z"}];
        
const orderedObjects = _.orderBy(myObjects, ({ date2, date }) => date2 || date, true);

console.log(orderedObjects);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用lodash或vanilla javascript计算数组内部的对象属性

使用 XSLT 订购可选元素

使用JavaScript DOM通过对象数组重写数据属性数组

如何对假定的形状数组使用可选属性

如何使用lodash通过单个属性过滤/比较2个对象数组?

使用Lodash通过多个属性对对象数组进行分组

通过使用Lodash合并复杂对象的数组

从数组使用lodash返回对象属性

使用Lodash按属性合并对象数组

如何通过属性订购HashMap

Swift:通过可选属性将可选模型数组减少为单个 Bool

使用Lodash遍历JavaScript对象中的属性

使用javascript / lodash遍历嵌套对象的数组

使用Lodash / Javascript过滤嵌套数组

使用javascript订购div

Javascript Lodash按外部数组和内部属性排序

如何使用 VanillaJS 或 Lodash 实现可选链/检查嵌套对象属性

通过其DateTime属性订购对象列表

通过属性加入对象数组javascript

通过属性键合并javascript对象数组

通过带有条件的自定义属性和其次自定义属性 desc 订购 swift 数组

如何使用lodash从对象属性数组中获取值?

使用 lodash 按嵌套属性对对象数组进行排序

根据属性值使用lodash过滤对象数组

如何使用lodash对对象数组中的属性进行分组?

使用lodash按属性合并2个排序的对象数组

如何使用lodash计算对象数组中的多个属性值?

Javascript或lodash:使用嵌套数组的值过滤对象数组

lodash orderBy通过嵌套属性