我正在尝试使用lodash.orderBy npm模块按升序排序带有Objects的数组。
这是我正在使用的示例对象
var obj = [{ user: 'me', score: 100}, { user: 'you', score: 55}, { user: 'someone', score: 555 }]
一旦我拥有该对象,我将其作为第一个参数传递,并指定orderBy中的哪个键。
let sort = orderBy(obj, 'score')
但这会返回一个空数组,有什么我做错了吗?基于文档这是正确的:https://lodash.com/docs/4.17.4#orderBy
这可能是异步调用的问题,并且说Array的索引是0。
编辑:
答案 0 :(得分:0)
好像你实际上没有在orderBy()
对象上调用lodash
。请尝试以下代码:
<强> JS 强>
const _ = require('lodash');
var obj = [[{
user: 'me',
score: 100
},{
user: 'you',
score: 55
},{
user: 'someone',
score: 555
}]]
var data = obj[0];
let sort = _.orderBy(data, 'score');
console.log(sort);
创建一个新变量data
并为其赋值obj[0]
,有效地为其分配数组。然后Lodash可以按预期订购数据。
控制台输出(默认情况下按升序排列)
[ { user: 'you', score: 55 },
{ user: 'me', score: 100 },
{ user: 'someone', score: 555 } ]
代码的可能解决方案
let obj = this.state.items;
let data = obj[0];
let sort = lodash.orderBy(data, 'score');
console.log(sort);