sortBy Lodash没有正确排序

时间:2014-11-13 19:29:52

标签: lodash

我想我误解了应该在这里发生的事情。我试图通过author属性对它们进行排序。这只是一个简短的例子,表明我的困惑,我尝试排序的实际对象要大得多。

var arr = [ { 
        author: "john" 
    },{ 
        author: "ben" 
    },{ 
        author: "apple" 
    }];

var sortActivities = function (attr, arr) {
    arr = _.sortBy(arr, function(elem){
        return elem[attr];
    });
};
console.log(arr);
sortActivities("author", arr);
console.log(arr);

我希望" apple"在排序后成为数组中的第一个。请让我知道我在这里做错了什么。

http://jsfiddle.net/1w1ohowm/

1 个答案:

答案 0 :(得分:1)

在你的情况下" arr"是按值传递的,所以如果你想得到排序的数组,你需要返回它。

例如,关注您的代码:

var sortActivities = function (attr, arr) {
    return _.sortBy(arr, function(elem){
        return elem[attr];
    });
};
console.log(arr);
arr = sortActivities("author", arr);
console.log(arr);

希望它有所帮助。