【问题标题】:Issue sorting by date with lodash使用 lodash 按日期排序
【发布时间】:2019-03-18 20:33:30
【问题描述】:

我正在尝试使用 lodash 和 vue 时刻按数据排序项目列表,我使用的是计算属性,但由于某种原因,这个名为 sortByUsedDate 的计算属性返回一个数字而不是排序数组......准确返回 11。

这是我的代码:

sortByUsedDate: function(){

        let sortedCodes = _.orderBy(this.modalPayload.discountcodes, (code) => {
            return Vue.moment(code.usedDate).format('MDYYYY');
        }, ['desc']);

        let sortedWithoutUnused = _.remove(sortedCodes, function(code) {
            return code.isBought === 1;
        });

        let unusedCodes = _.filter(this.modalPayload.discountcodes, function(code){
            return code.isBought == 0;
        });

        let final = sortedWithoutUnused.push(unusedCodes);

        return final;
    }

【问题讨论】:

    标签: javascript vue.js lodash


    【解决方案1】:

    .push 返回数组的长度。您应该只返回没有赋值的数组:

    sortedWithoutUnused.push(unusedCodes);
    
    return sortedWithoutUnused;
    

    但是,如果您尝试合并两个数组,我认为您无论如何都不想使用 push,您可能希望使用 ....concat 代替:

    return [...sortedWithoutUnused, ...unusedCodes];
    

    或者

    return sortedWithoutUnused.concat(unusedCodes);
    

    【讨论】:

    • 或者改用Array#slice
    • 或者像这样使用ES6 spread syntaxreturn [...sortedWithoutUnused, ... unusedCodes]
    猜你喜欢
    • 2021-12-04
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 2023-04-10
    • 2017-07-19
    • 2014-03-09
    • 2011-02-19
    • 1970-01-01
    相关资源
    最近更新 更多