如何按最接近的数字对数组排序

布克

我正在尝试按与特定数字最接近的项目对数组进行排序

以下解决方案并非在所有情况下都无法正常工作

let array = [{"price":"6850000"},{"price":"6692301"},{"price":"6880000"},{"price":"6735100"},{"price":"6708900"},{"price":"7000000"}]

var price = 6692300
const closestArray = array.sort((a, b) => {
  if (Math.abs(b.price - price) > Math.abs(a.price - price)) {
      return b.price
  } else {
      return a.price
  }
})

console.log(closestArray)

IT使用此示例:

let array = [401,402,400,478,421,432]

var price = 400
const closestArray = array.sort((a, b) => {
    if (Math.abs(b - price) < Math.abs(a - price)) {
        return b
    } 
})

console.log(closestArray);

slebetman

在两种情况下,您都返回一个正数。也就是说,在两种情况下您都将返回>0这意味着您的代码确实在做:

  if (Math.abs(b.price - price) > Math.abs(a.price - price)) {
      sort b before a
  } else {
      sort b before a
  }

基本上,您的if声明没有做任何事情。

您真正想要的是:

  if (Math.abs(b.price - price) > Math.abs(a.price - price)) {
      return 1
  } else {
      return -1
  }

要么

  if (Math.abs(b.price - price) > Math.abs(a.price - price)) {
      return -1
  } else {
      return 1
  }

根据您要对天气进行升序或降序排序。

更好的是,您确实应该这样做:

return Math.abs(b.price - price) - Math.abs(a.price - price)

要么

return Math.abs(a.price - price) - Math.abs(b.price - price)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

按最接近的值对数组排序

来自分类Dev

从 Python 中排序的数组中最接近的数字返回索引

来自分类Dev

JAVA按数字顺序对数组排序

来自分类Dev

PHP按数字名称对数组排序

来自分类Dev

我如何使用orderBy按角度最接近的顺序排序

来自分类Dev

排序最接近给定数字的数字

来自分类Dev

如何找到最接近某个数字的数组元素?

来自分类Dev

如何按字母顺序对数组排序?

来自分类Dev

如何按最高编号对数组排序

来自分类Dev

如何按字母顺序对数组排序?

来自分类Dev

如何按“包含”对数组进行排序?

来自分类Dev

如何找到在JavaScript中按降序对数字数组进行排序所需的最小交换次数

来自分类Dev

排序值最接近1的数组

来自分类Dev

PHP-尝试按数字字段对数组排序

来自分类Dev

二维数组 - 按行对数字进行排序

来自分类Dev

从数组获取数字的最接近值

来自分类Dev

获取数组中最接近的数字

来自分类Dev

使用 lodash 或类似的库,您如何按最接近的结果对集合进行排序?

来自分类Dev

如何按人类可读的大小对数字进行排序?

来自分类Dev

在数组perl中按数字对数字和按字母顺序排序

来自分类Dev

按属性对数组排序

来自分类Dev

按日期对数组排序

来自分类Dev

按值对数组排序

来自分类Dev

按值对数组排序

来自分类Dev

按委托对数组排序

来自分类Dev

如何按数字对多维数组排序

来自分类Dev

如何在PHP中的日期数组中从最接近的日期到最远的日期排序

来自分类Dev

如何在Perl中按列对数组或表排序?

来自分类Dev

如何使用javascript按组对数组进行排序?