从另一个分层对象创建分层对象

安娜·温德洛娃(Anna Wenderova)

我需要从另一个创建一个新对象。例如。这是一个旧对象:

const objectOld = { 
  level1: { 
    level2: { 
      level3: { 
        code: 123, 
        error: 'Message' 
      }  
    } 
  } 
}

这是我根据旧对象创建的新对象。

const objectNew = { 
  level1: { 
    level2: { 
      level3: { 
        error: {
           code: 123, 
           key: 'Message' 
        }
      }  
    } 
  } 
}

深度当然可以不同。

有人能帮我吗?

kemicofa鬼

您可以通过撤消,Array#reduce,Object#entries和一些破坏来实现此目的。

这将深度复制您的对象,并在{ error: { code: string, key: string } }检测到具有codemessage属性的对象时创建

如果对象没有这些属性,它将自行调用并继续。

如果value不是对象,则将该值保持原样。

const objectOld = { 
  level1: { 
    level2: { 
      level3: { 
        code: 123, 
        error: 'Message' 
      }  
    } 
  } 
};


function transform(obj){
  return Object
  .entries(obj)
  .reduce((acc, [key, value])=>{
    if(typeof value === 'object'){
      if("code" in value && "error" in value){
        acc[key] = {
          error: {
            key: value.error,
            code: value.code
          }
        }
      } else {
        acc[key] = transform(value)
      }
    } else {
      acc[key] = value;
    }
    return acc;
  }, {});
}

const objectNew = transform(objectOld);

console.log(
  objectNew
);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从JavaScript中的另一个对象创建对象

来自分类Dev

在另一个对象中创建的模拟对象

来自分类Dev

创建分层动态JS对象

来自分类Dev

创建分层动态JS对象

来自分类Dev

创建对另一个对象的引用

来自分类Dev

从另一个实例创建新对象

来自分类Dev

创建另一个类python的对象

来自分类Dev

用另一个类创建新对象

来自分类Dev

访问在另一个类中创建的对象

来自分类Dev

如何运行一堆分层的虚拟外壳程序进程(另一个进程等)?

来自分类Dev

从另一个对象类型创建一个对象

来自分类Dev

使用lodash通过键从另一个对象的组创建一个对象

来自分类Dev

打字稿基于接口从另一个对象创建一个对象

来自分类Dev

如何基于数组和另一个对象创建一个新对象?

来自分类Dev

从另一个对象类型创建一个对象

来自分类Dev

AngularJS / JavaScript从另一个对象创建一个新对象

来自分类Dev

从另一个对象创建一个对象是更好的做法

来自分类Dev

如何使用 Python 从另一个对象创建一个新的 JSON 对象?

来自分类Dev

如何根据另一个对象数组的值创建一个对象数组?

来自分类Dev

以编程方式基于另一个对象数组创建一个对象数组

来自分类Dev

分层处理ID变量的所有值,并添加另一个变量的值

来自分类Dev

java-获取似乎是从另一个类分层的内容

来自分类Dev

将分层数据连接到 R 中的另一个表

来自分类Dev

创建一个引用另一个对象的参数的变量?

来自分类Dev

你如何创建一个使用另一个类的变量的java对象?

来自分类Dev

创建一个新对象似乎改变了先前创建的另一个对象(???)

来自分类Dev

在java中创建一个通用对象并使用它来创建另一个通用对象

来自分类Dev

尝试在另一个对象之前创建对象时,FactoryGirl中出现错误

来自分类Dev

使用另一个(现有)对象创建新对象时会发生什么?

Related 相关文章

  1. 1

    从JavaScript中的另一个对象创建对象

  2. 2

    在另一个对象中创建的模拟对象

  3. 3

    创建分层动态JS对象

  4. 4

    创建分层动态JS对象

  5. 5

    创建对另一个对象的引用

  6. 6

    从另一个实例创建新对象

  7. 7

    创建另一个类python的对象

  8. 8

    用另一个类创建新对象

  9. 9

    访问在另一个类中创建的对象

  10. 10

    如何运行一堆分层的虚拟外壳程序进程(另一个进程等)?

  11. 11

    从另一个对象类型创建一个对象

  12. 12

    使用lodash通过键从另一个对象的组创建一个对象

  13. 13

    打字稿基于接口从另一个对象创建一个对象

  14. 14

    如何基于数组和另一个对象创建一个新对象?

  15. 15

    从另一个对象类型创建一个对象

  16. 16

    AngularJS / JavaScript从另一个对象创建一个新对象

  17. 17

    从另一个对象创建一个对象是更好的做法

  18. 18

    如何使用 Python 从另一个对象创建一个新的 JSON 对象?

  19. 19

    如何根据另一个对象数组的值创建一个对象数组?

  20. 20

    以编程方式基于另一个对象数组创建一个对象数组

  21. 21

    分层处理ID变量的所有值,并添加另一个变量的值

  22. 22

    java-获取似乎是从另一个类分层的内容

  23. 23

    将分层数据连接到 R 中的另一个表

  24. 24

    创建一个引用另一个对象的参数的变量?

  25. 25

    你如何创建一个使用另一个类的变量的java对象?

  26. 26

    创建一个新对象似乎改变了先前创建的另一个对象(???)

  27. 27

    在java中创建一个通用对象并使用它来创建另一个通用对象

  28. 28

    尝试在另一个对象之前创建对象时,FactoryGirl中出现错误

  29. 29

    使用另一个(现有)对象创建新对象时会发生什么?

热门标签

归档