如何将原始数据优雅地转换为按年龄分组的姓名对象数组?

如何将原始数据优雅地转换为按年龄分组的姓名对象数组?

如何优雅地转换对象数据?

想要将原始数据:

let arr = [
    { name: '张三', age: 1 },
    { name: '李四', age: 1 },
    { name: '小红', age: 3 },
    { name: '明明', age: 3 },
    { name: '兰兰', age: 3 },
    { name: '红红', age: 4 },
    { name: '刘明', age: 4 },
    { name: '王五', age: 8 },
    { name: '麻子', age: 8 },
    { name: '瘸子', age: 8 },
];

转换为目标数据:

targetArr = [
    { 1: '张三', 3: '小红', 4: '红红', 8: '王五' },
    { 1: '李四', 3: '明明', 4: '刘明', 8: '麻子' },
    { 1: '', 3: '兰兰', 4: '', 8: '瘸子' },
];

其实我们可以采用如下步骤:

  1. 初始化一个空对象 temp,用于存储按年龄分组后的名字数组。
  2. 遍历原始数据,并为每个年龄组构造一个数组,将其添加到 temp 中。
  3. 遍历 temp,并创建空对象数组 targetArr。
  4. 依次遍历每个年龄组,并为其添加一个按年龄索引的属性。
  5. 遍历 temp的所有年龄组,确保 targetArr 中包含所有年龄索引。
  6. 为每个年龄索引找到对应的年龄组,并将其名字赋值给该索引下的属性。

以上就是如何将原始数据优雅地转换为按年龄分组的姓名对象数组?的详细内容,更多请关注其它相关文章!