我在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/

10-12 07:12