对一个数组进行排序并保持其他两个数组同步

Tom*_*oes 1 javascript arrays sorting plotly chart.js

data = {
    "age": [41, 21, 88],
    "name": ["Rob", "Tom", "Susan"],
    "color": ["Red", "Blue", "Orange"]
}
Run Code Online (Sandbox Code Playgroud)

我如何根据 1 个数组的值对这些记录进行排序?我尝试过 sort() 函数,但它不能将数据压缩在一起。

data = {
    "age": [21, 41, 88],
    "name": ["Tom", "Rob", "Susan"],
    "color": ["Blue", "Red", "Orange"]
}
Run Code Online (Sandbox Code Playgroud)

sli*_*der 6

如果您想将数组分开,可以通过对年龄数组进行排序来提取索引顺序,然后按该顺序对每个数组进行排序:

let data = {
  "age": [41, 21, 88],
  "name": ["Rob", "Tom", "Susan"],
  "color": ["Red", "Blue", "Orange"]
};

let indexOrder = data.age
  .map((a, i) => [a, i])
  .sort((a, b) => a[0] - b[0])
  .map(a => a[1]);

for (let k in data) {
  data[k] = indexOrder.map(i => data[k][i]);
}

console.log(data);
Run Code Online (Sandbox Code Playgroud)