js按照属性值排序

发布于 2022-09-13 00:12:17 字数 160 浏览 22 评论 0

有以下数据:

var arr5 = [{id:10, flag: true},{id:5, flag: false},{id:6, flag: true},{id:9, flag: false}]

按照flag排序,为true的在前面显示,如何做?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

椵侞 2022-09-20 00:12:17
const arr5 = [
    { id: 10, flag: true },
    { id: 5, flag: false },
    { id: 6, flag: true },
    { id: 9, flag: false }
];

const r = arr5.sort((a, b) => b.flag - a.flag);
console.log(r);

// [
//     { id: 10, flag: true },
//     { id: 6, flag: true },
//     { id: 5, flag: false },
//     { id: 9, flag: false }
// ]

补充说明一下,JavaScript 中 boolean 值用于数值运算的时候,truefalse 分别是当作 10 来算的。用一些简单的运算都试得出来,

比如两次取反(按位):~~true === 1,或者直接 true + 0 === 1

不过 parseInt(true) 会得到 NaN

吻泪 2022-09-20 00:12:17
arr5.sort((a,b)=>!a.flag-1)
console.log(arr5)

如果是倒序就是把 !a.flag-1 换成 a.flag-1

装迷糊 2022-09-20 00:12:17
_.sortBy(arr5,['flag'])
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文