javascript - 按最接近 x 的值对对象数组进行排序

标签 javascript arrays sorting

我有一个对象数组,我想按最接近 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; }

关于javascript - 按最接近 x 的值对对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53991506/

相关文章:

mysql - 自定义 SQL 查询,用于以 "-"作为分隔符对值进行排序

Javascript onmouseover 无法在 Firefox 中使用 doctype?

javascript - 根据项目的某些属性将数组分解为数组数组

Javascript - 将数组(按值)复制到原型(prototype)中

sorting - ldapsearch 排序顺序如何工作?

android - 使用 sqlite ORDERBY 字段

javascript - 删除我页面中谷歌地图的 tabindex

javascript - 在 React 组件构造函数中处理 promise 链

javascript - 在 Fullcalendar 中拖动时如何链接两个事件?

java - 将简单的 JAVA 代码转换为 PHP(数组)