我有一个要订购的对象数组(本质上是一张 table ):

myArr = [{
    name: 'John',
    email: '[email protected]',
    accepted: true
}, {
    name: 'Alfred',
    email: '[email protected]',
    accepted: false
}]

我正在像这样从lodash使用orderBy:
//get columnName to sort by from another function
const newArr = _.orderBy(myArr, [columnName], ['asc'])

通过名称和电子邮件订购可以很好地工作,但是接受却无济于事。我知道我可以将0和1接受存储,但是还有另一种方法吗? lodash是否足以满足要求,还是我应该为此创建一个单独的函数?

最佳答案

您可以使用 ES6 表示法来尝试

const newArr = [
    ...myArr.filter(c => c.accepted === false),
    ...myArr.filter(c => c.accepted === true)
];

您还可以使用 Array.sort原型(prototype)
myArr.sort((a, b) => (a.accepted - b.accepted));

10-08 04:40