gpt4 book ai didi

javascript - Order By 对象内部属性中的自定义顺序

转载 作者:行者123 更新时间:2023-11-30 11:10:54 24 4
gpt4 key购买 nike

我需要根据子对象的属性对对象数组进行排序:

foo = [
{
bar: {
order: "hello"
}
},
{
bar: {
order: "something"
}
},
{
bar: {
order: "else"
}
},
]

如果我希望 foo 对象的顺序基于由 order 值设置的自定义顺序(不是字母顺序!),例如

{ "something": 1, "hello": 2, "else": 3 }

使用 _orderBy(foo, indexOfMyCustomOrder, 'desc') 之类的东西,我该如何实现?或者我是否需要将此逻辑分成两个函数?

最佳答案

定义indexOfMyCustomOrder如下:

const indexOfMyCustomOrder = o => order[o.bar.order];

...其中 order 变量应该是为 order 属性的每个可能值定义序列的对象。

见片段:

const foo = [{bar:{order:"hello"}},{bar:{order: "something"}},{bar:{order:"else"}}];
const order = { "something": 1, "hello": 2, "else": 3 };

const result = _.orderBy(foo, o => order[o.bar.order]);

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.4/lodash.min.js"></script>

关于javascript - Order By 对象内部属性中的自定义顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53767063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com