Lodash orderBy返回空数组
问题描述:
我想要使用lodash.orderBy npm模块以升序排列对象的数组。Lodash orderBy返回空数组
这是我使用
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
这可能是与异步调用的问题,并说该数组的索引是0
编辑:
答
看起来好像你实际上没有在上调用对象。尝试以下代码:
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);
你导入'lodash'地方?你应该使用'lodash.orderBy',而不是自己的函数。 – Ksyqo
@Valberthe正确,我正在导入,例如从'lodash.orderby'导入orderBy – rizzy
您必须做错某事,因为您的示例正在为我工作。 – Amberlamps