javascript - 通过每个元素中的键之一对JS中的对象进行排序

标签 javascript arrays sorting

我在 JS 中有一个对象,结构如下:

[{
    "x": 2.31,
    "y": 0.538
}, 
{
    "x": 7.07,
    "y": 0.469
}, 
{
    "x": 6.02,
    "y": 0.469
}, 
{
    "x": 2.18,
    "y": 0.458
}]

我需要在每个元素中按其中一个键排序(按 x 排序)。结果将如下所示:

[{
    "x": 2.18,
    "y": 0.458
}, 
{
    "x": 2.31,
    "y": 0.538
}, 
{
    "x": 6.02,
    "y": 0.469
}, 
{
    "x": 7.07,
    "y": 0.469
}]

以下方法不适用于上述结构:

var sorted = [];
for(var key in dict) {
    sorted[sorted.length] = key;
}
sorted.sort();

以下也不行:

function sortObject(o) {
    return Object.keys(o).sort().reduce((r, k) => (r[k] = o[k], r), {});
}

最佳答案

实现自定义排序方法。

var arr = [{ "x": 2.31, "y": 0.538 }, { "x": 7.07, "y": 0.469 }, { "x": 6.02, "y": 0.469 }, { "x": 2.18, "y": 0.458 }]
arr.sort((a,b) => a.x - b.x)
console.log(arr);

关于javascript - 通过每个元素中的键之一对JS中的对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48375224/

相关文章:

javascript - 使用 JavaScript 检查 HTML 文档中的事件元素

javascript - 如何在 react 中更改 pdf 的高度或宽度(npm react-pdf)

JavaScript:在 while 循环中更改对象中的值

javascript - 根据时间字符串值对对象数组进行排序?

javascript - django:如何将模板变量传递给 javascript onclick 例程?

javascript - Angular 指令分配具有多种行为的相同范围

C++ - 通过 ref 传递数组

c# - 计算文本中字符串数组中元素的总出现次数

multithreading - 在多线程世界中使用带有shared_ptr向量的std::sort的危险

javascript - jquery-datatables 多列排序方向