[英]How to sort a array of object based on range of values from each row?
我有一个 object 数组,其中的值具有我想根据范围对值进行排序的范围。 首先,它应该根据 conditionalTo 进行排序,然后在有条件的 from 到 conditionalto 的范围内,它应该对计算进行排序。 请帮助stackblitz jsfiddle数组
[
{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 result = sortBy((sortBy(array, 'computationTo')), 'conditionalTo');
您可以自定义排序委托,例如:
arr.sort((a, b) => {
let ret = a.conditionalTo - b.conditionalTo;
if (ret !== 0)
return ret;
return a.conditionalFrom - b.conditionalFrom;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.