📜  如何转置 json 数据 - Javascript (1)

📅  最后修改于: 2023-12-03 14:53:18.699000             🧑  作者: Mango

如何转置 JSON 数据 - JavaScript

在 JavaScript 中,有时需要转置(行列交换) JSON 数据。通常情况下,我们需要将 JSON 数组中的对象属性转换为数组,反之亦然。本文将介绍如何使用 JavaScript 将 JSON 数据进行转置。

1. 转置 JSON 数组中的对象属性为数组
示例数据
const data = [
  { id: 1, name: '张三', age: 20 },
  { id: 2, name: '李四', age: 25 },
  { id: 3, name: '王五', age: 30 }
];
转置方法
const transpose = (data) => {
  // 获取所有属性名
  const keys = Object.keys(data[0]);

  // 将对象属性转换为数组
  const result = keys.map(key => {
    return data.map(item => item[key]);
  });
  
  return result;
};

// 使用示例
console.log(transpose(data));
// 输出结果:[ [ 1, 2, 3 ], [ '张三', '李四', '王五' ], [ 20, 25, 30 ] ]
2. 转置数组为 JSON 数组中的对象属性
示例数据
const data = [
  [ 1, 2, 3 ],
  [ '张三', '李四', '王五' ],
  [ 20, 25, 30 ]
];
转置方法
const transpose = (data) => {
  const result = data[0].map((col, i) => {
    return data.map((row) => {
      return row[i];
    });
  });

  // 将数组转换为对象
  const keys = Object.keys(data[0]);
  return result.map(item => {
    const obj = {};
    item.forEach((value, index) => {
      obj[keys[index]] = value;
    });
    return obj;
  });
};

// 使用示例
console.log(transpose(data));
// 输出结果:
// [
//  { id: 1, name: '张三', age: 20 },
//  { id: 2, name: '李四', age: 25 },
//  { id: 3, name: '王五', age: 30 }
// ]
总结

通过本文的介绍,我们可以了解到如何使用 JavaScript 将 JSON 数据进行转置。这对于一些需要对大量数据进行快速统计和分析的场景非常有用。