gpt4 book ai didi

javascript - 如何根据两个属性对对象数组进行排序并检查范围是否连续?

转载 作者:行者123 更新时间:2023-12-03 18:46:52 24 4
gpt4 key购买 nike

我有一个对象数组,其中的值具有范围,我想根据范围对值进行排序。首先,它应该根据 conditionalTo 进行排序,然后在条件 from 到 conditionalto 的范围内,它应该对 computationto 进行排序。数组

[
{conditionalFrom: 0, conditionalTo: 10000, computationFrom: 0, computationTo: 1000},
{conditionalFrom: 10001, conditionalTo: 10000000, computationFrom: 1001, computationTo: 100000},
{conditionalFrom: 10001, conditionalTo: 999999999999, computationFrom: 0, computationTo: 1000}
]

预期结果

[
{conditionalFrom: 0, conditionalTo: 10000, computationFrom: 0, computationTo: 1000},
{conditionalFrom: 10001, conditionalTo: 999999999999, computationFrom: 0, computationTo: 1000},
{conditionalFrom: 10001, conditionalTo: 10000000, computationFrom: 1001, computationTo: 100000},
]

数组

[
{conditionalFrom: 10001, conditionalTo: 10000000, computationFrom: 1001, computationTo: 100000},
{conditionalFrom: 0, conditionalTo: 10000, computationFrom: 1001, computationTo: 100000},
{conditionalFrom: 0, conditionalTo: 10000, computationFrom: 0, computationTo: 1000},
{conditionalFrom: 10001, conditionalTo: 10000000, computationFrom: 0, computationTo: 1000},
]

预期结果

[
{conditionalFrom: 0, conditionalTo: 10000, computationFrom: 0, computationTo: 1000},
{conditionalFrom: 0, conditionalTo: 10000, computationFrom: 1001, computationTo: 100000},
{conditionalFrom: 10001, conditionalTo: 10000000, computationFrom: 0, computationTo: 1000},
{conditionalFrom: 10001, conditionalTo: 10000000, computationFrom: 1001, computationTo: 100000}
]

在两种情况下都使用 lodash 但输出不正确

 const SlabDetails = orderBy(this.tableData, [r => r.conditionalTo - r.conditionalFrom, r => r.computationTo - r.computationFrom], "asc");

最佳答案

您可以使用 _.sortBy 指定 wnated 属性.

const
sort = data => _.sortBy(data, [
'conditionalFrom',
'computationFrom',
'computationTo'
]),
data0 = [{ conditionalFrom: 0, conditionalTo: 10000, computationFrom: 0, computationTo: 1000 }, { conditionalFrom: 10001, conditionalTo: 10000000, computationFrom: 1001, computationTo: 100000 }, { conditionalFrom: 10001, conditionalTo: 999999999999, computationFrom: 0, computationTo: 1000 }],
data1 = [{ conditionalFrom: 0, conditionalTo: 10000, computationFrom: 0, computationTo: 1000 }, { conditionalFrom: 0, conditionalTo: 10000, computationFrom: 1001, computationTo: 100000 }, { conditionalFrom: 10001, conditionalTo: 10000000, computationFrom: 0, computationTo: 1000 }, { conditionalFrom: 10001, conditionalTo: 10000000, computationFrom: 1001, computationTo: 100000 }];

console.log(sort(data0));
console.log(sort(data1));
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>

关于javascript - 如何根据两个属性对对象数组进行排序并检查范围是否连续?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67820457/

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