使用 Lodash 按值对对象数组进行排序 [英] use Lodash to sort array of object by value

查看:175
本文介绍了使用 Lodash 按值对对象数组进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试按名称"值对数组进行排序(使用 Lodash).我使用 Lodash 文档来创建下面的解决方案,但是 .orderBy 似乎根本没有任何影响.任何人都可以阐明对数组进行排序的正确方法吗?

字符数组

<预><代码>[{身份证":25,"name":"阿纳金天行者","createdAt":"2017-04-12T12:48:55.000Z","updatedAt":"2017-04-12T12:48:55.000Z"},{身份证":1,"name":"卢克·天行者","createdAt":"2017-04-12T11:25:03.000Z","updatedAt":"2017-04-12T11:25:03.000Z"}]

功能代码

 var chars = this.state.characters;_.orderBy(chars, 'name', 'asc');//使用 Lodash 按 'name' 对数组进行排序this.setState({characters: chars})

解决方案

这个方法 orderBy 不会改变输入数组,您必须将结果分配给您的数组:

var chars = this.state.characters;chars = _.orderBy(chars, ['name'],['asc']);//使用 Lodash 按 'name' 对数组进行排序this.setState({characters: chars})

I am trying to sort an array by 'name' value (using Lodash). I used the Lodash docs to create the solution below however .orderBy doesn't seem to be having any affect at all. Can anyone shed some light on the correct way to sort array?

Chars Array

[  
   {  
      "id":25,
      "name":"Anakin Skywalker",
      "createdAt":"2017-04-12T12:48:55.000Z",
      "updatedAt":"2017-04-12T12:48:55.000Z"
   },
   {  
      "id":1,
      "name":"Luke Skywalker",
      "createdAt":"2017-04-12T11:25:03.000Z",
      "updatedAt":"2017-04-12T11:25:03.000Z"
   }
]

Function Code

 var chars = this.state.characters;

 _.orderBy(chars, 'name', 'asc'); // Use Lodash to sort array by 'name'

 this.setState({characters: chars})

解决方案

This method orderBy does not change the input array, you have to assign the result to your array :

var chars = this.state.characters;

chars = _.orderBy(chars, ['name'],['asc']); // Use Lodash to sort array by 'name'

 this.setState({characters: chars})

这篇关于使用 Lodash 按值对对象数组进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆