作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要根据子对象的属性对对象数组进行排序:
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/
我是一名优秀的程序员,十分优秀!