繁体   English   中英

通过最接近x的值对对象数组进行排序

[英]Sort an object array by nearest values to x

我有一个对象数组,我想通过最接近X的值对该数组进行排序。

例如,这是一个对象数组:

[
 {"name" : "some 1", "value" : 12.4},
 {"name" : "some 2", "value": 11.4},
 {"name" : "some 3", "value": 10.5},
 {"name" : "some 4", "value": 11.4}
]

我想通过最接近X的 “值”对其进行排序。

让我们说我想对数组进行排序,使属性“值”最接近11.所以新的顺序将是:

[
  {"name" : "some 2", "value": 11.4},
  {"name" : "some 4", "value": 11.4},
  {"name" : "some 3", "value": 10.5},
  {"name" : "some 1", "value": 12.4}
 ]

因为11.4最接近11,然后是10.5然后是12.4。

您可以按值的绝对增量和所需值进行排序。

 var array = [{ name: "some 1", value: 12.4 }, { name: "some 2", value: 11.4 }, { name: "some 3", value: 10.5 }, { name: "some 4", value: 11.4 }], value = 11; array.sort(({ value: a }, { value: b }) => Math.abs(a - value) - Math.abs(b - value)); console.log(array); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

您可以使用距离(差值的绝对值value - x )对数组进行排序,如下所示:

arr.sort((a, b) => Math.abs(a.value - x) - Math.abs(b.value - x));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM