首页 > 解决方案 > 如何接近和对齐数组中的元素?

问题描述

我已经尝试过:

let age = arr.sort(function(a, b) {
    return b -a;
});

它适用于简单的数组,但它不起作用。在这个数组中:

let list = [
  [
    ['firstName', 'Joe'],
    ['age', 42],
    ['gender', 'male'],
  ],
  [
    ['firstName', 'Mary'],
    ['lastName', 'Jenkins'],
    ['age', 36],
    ['gender', 'female'],
  ],
  [
    ['lastName', 'Kim'],
    ['age', 40],
    ['gender', 'female'],
  ],
];

它是双数组,并且“年龄”索引定位不同。我怎样才能接近“年龄”并对齐?我想升序排序。

标签: javascriptarrays

解决方案


您可以使用fromEntries将数组项转换为对象然后排序。但是您应该考虑将项目更新为对象以避免这种不必要的转换。

const list = [ [ ['firstName', 'Joe'], ['age', 42], ['gender', 'male'], ], [ ['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['gender', 'female'], ], [ ['lastName', 'Kim'], ['age', 40], ['gender', 'female'], ], ];
list.sort((a, b) => Object.fromEntries(a).age - Object.fromEntries(b).age);

console.log(list);


推荐阅读