Сортировка по дате с lodash

1

Я пытаюсь получить отсортированный список элементов по данным с использованием моментов 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;
    }
Теги:
vue.js
lodash

1 ответ

2

.push возвращает длину массива. Вы должны просто вернуть массив без присваивания:

sortedWithoutUnused.push(unusedCodes);

return sortedWithoutUnused;

Но если вы пытаетесь объединить два массива, я не думаю, что вы все равно хотите использовать push, вы, вероятно, захотите использовать ... или .concat вместо этого:

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

Или же

return sortedWithoutUnused.concat(unusedCodes);
  • 0
    Или используйте Array#slice вместо
  • 1
    Или используйте синтаксис распространения ES6 следующим образом: return [...sortedWithoutUnused, ... unusedCodes]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню