如何按距离
对包含这些对象的数组进行排序,以便将对象从最小距离排序到最大距离?
[
{ distance: 3388, duration: "6 mins", from: "Lenchen Ave, Centurion 0046, South Africa" },
{ distance: 13564, duration: "12 mins", from: "Lenchen Ave, Centurion 0046, South Africa" },
{ distance: 4046, duration: "6 mins", from: "Lenchen Ave, Centurion 0046, South Africa" },
{ distance: 11970, duration: "17 mins", from: "Lenchen Ave, Centurion 0046, South Africa" }
]
最佳答案
使用Array.prototype.sort() , 例如
myArray.sort((a, b) => a.distance - b.distance)
sort()
方法接受一个比较器 函数。这个函数接受两个参数(假设都是同一类型),它的工作是确定两个参数中哪个先出现。
它通过返回一个整数
来做到这一点- 负数(小于零):第一个参数在前
- 正数(大于零):第二个参数在前
- 零:参数在排序时被认为是相等的
当您处理数值时,最简单的解决方案是从第一个值中减去第二个值,这将产生升序结果。
关于javascript - 按对象属性值对数组进行数字排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7889006/