JS 数据深层次合并优化问题

对于一些列表数据进行了一些操作,需要对数据进行合并,一直使用扩展运算符,但是有时候又显得有点繁琐,笨重,想请教大家是否有更好的优化方案。

// 数据结构

list: [
    {
        id: 1,
        label: {
            normal: {
                id: 1,
                name: '名字',
                age: 23
            }
        }
    },
    {
        id: 2,
        label: {
            normal: {
                id: 2,
                name: '名字2',
                age: 24
            }
        }
    }
]


// 现在我需要把name字段全部修改成 "已禁用" 三个字,年龄设置成 "000",添加 add 字段。

list.map(item => {
    return {
      ...item,
      label: {
        ...item.label,
        normal: {
          ...item.label.normal,
          name: '已禁用',
          age: '000',
          add: '暂无'
        },
      },
    };
})

谢谢大家,看看有没有更简洁的方案。

阅读 2.5k
4 个回答
list.map(({ label, ...rest }) => ({
    ...rest,
    label: {...(
        label.normal.add = '暂无',        
        label.normal.age = '000',
        label.normal.name = '已禁用',
        label
    )}
}))

反正你只是改normal这个对象

list.map(item => {
    Object.assign(item.label.normal,{
        name: '已禁用',
        age: '000',
        add: '暂无'
    })
    return item;
})

只是赋值的话直接循环里面item.label.normal.name=''不行吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏