创建子对象(如果不存在)

用户名

例如我有对象:

person = {
            Name: 'John',
            Address: {
               Name: 'NY'
            }
         }

而且我有一系列属性:

0: Name,
1: Address.Name,
2: Car.Name

我想创建所有不存在的属性(对象)。例如上面的例子,我想得到:

 {
       Name: 'John',
       Address: {
          Name: 'NY'
       },
       Car: {
          Name: null
      }
 }

PS。该阵列是动态构建的。我不知道有哪些属性。

技术傻瓜

要添加缺少的属性,您可以遍历属性,检查对象中是否存在该属性,然后根据需要添加。

// original object
var person = {
    Name: 'John',
    Address: {
        Name: 'NY'
    }
};

// list of all properties
var props = ['Name', 'Address.Name', 'Car.Name'];

// iterate through the properties and add as needed
props.forEach(function(prop) {
    var root = person;
    prop = prop.split('.'); // split by . to use [] notation subsequently
    for(var i=0; i<prop.length; i++) {
        if(typeof root[prop[i]] === 'undefined') root[prop[i]] = (i === prop.length-1 ? null : {});
        root = root[prop[i]];
    }
});

console.log(person);
/*
{
    Name: 'John',
    Address: {
        Name: 'NY'
    },
    Car: {
        Name: null
    }
}
*/

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JavaScript对象属性-如果不存在则创建属性

来自分类Dev

更新多个对象,如果不存在则创建

来自分类Dev

VBA检查目录是否存在,如果存在退出子,否则不存在,创建

来自分类Dev

如果对象不存在,则按$ Push

来自分类Dev

如果不存在则追加对象

来自分类常见问题

如果Ruby不存在,则创建目录

来自分类Dev

如果记录不存在则创建

来自分类Dev

Netezza创建表(如果不存在)

来自分类Dev

PostgreSQL:如果不存在,则创建表

来自分类Dev

创建mysql表(如果不存在)

来自分类Dev

创建聚合(如果不存在)

来自分类Dev

附加或创建StringSet(如果不存在)

来自分类Dev

如果目录不存在,如何创建?

来自分类Dev

雄辩的:如果不存在则创建关系

来自分类Dev

HSQL:创建索引(如果不存在)

来自分类Dev

Akka:如果不存在则创建演员

来自分类Dev

如果存在,则覆盖;如果不存在,则创建

来自分类Dev

在保存时添加ManyToManyField关系,并创建对象(如果不存在)

来自分类Dev

将成员添加到对象,如果不存在则首先创建

来自分类Dev

在关联数组中创建对象(如果不存在),然后对其进行引用

来自分类Dev

如果尚不存在,如何在Oracle PL / SQL中创建新的对象类型

来自分类Dev

如果相关外键不存在,如何禁止创建对象?

来自分类Dev

创建新对象时查询核心数据以获取特定属性,如果存在则返回该对象,如果不存在则创建一个新对象

来自分类Dev

HSQLDB:创建模式(如果不存在)->意外的令牌不存在

来自分类Dev

MySQL - 如果不存在,则使用子查询插入

来自分类Dev

如果数组对象中不存在,则推送

来自分类Dev

如果不存在一对多关系,则过滤对象

来自分类Dev

如果数组对象中不存在,则推送

来自分类Dev

如果流星的文档中不存在mongo插入对象

Related 相关文章

  1. 1

    JavaScript对象属性-如果不存在则创建属性

  2. 2

    更新多个对象,如果不存在则创建

  3. 3

    VBA检查目录是否存在,如果存在退出子,否则不存在,创建

  4. 4

    如果对象不存在,则按$ Push

  5. 5

    如果不存在则追加对象

  6. 6

    如果Ruby不存在,则创建目录

  7. 7

    如果记录不存在则创建

  8. 8

    Netezza创建表(如果不存在)

  9. 9

    PostgreSQL:如果不存在,则创建表

  10. 10

    创建mysql表(如果不存在)

  11. 11

    创建聚合(如果不存在)

  12. 12

    附加或创建StringSet(如果不存在)

  13. 13

    如果目录不存在,如何创建?

  14. 14

    雄辩的:如果不存在则创建关系

  15. 15

    HSQL:创建索引(如果不存在)

  16. 16

    Akka:如果不存在则创建演员

  17. 17

    如果存在,则覆盖;如果不存在,则创建

  18. 18

    在保存时添加ManyToManyField关系,并创建对象(如果不存在)

  19. 19

    将成员添加到对象,如果不存在则首先创建

  20. 20

    在关联数组中创建对象(如果不存在),然后对其进行引用

  21. 21

    如果尚不存在,如何在Oracle PL / SQL中创建新的对象类型

  22. 22

    如果相关外键不存在,如何禁止创建对象?

  23. 23

    创建新对象时查询核心数据以获取特定属性,如果存在则返回该对象,如果不存在则创建一个新对象

  24. 24

    HSQLDB:创建模式(如果不存在)->意外的令牌不存在

  25. 25

    MySQL - 如果不存在,则使用子查询插入

  26. 26

    如果数组对象中不存在,则推送

  27. 27

    如果不存在一对多关系,则过滤对象

  28. 28

    如果数组对象中不存在,则推送

  29. 29

    如果流星的文档中不存在mongo插入对象

热门标签

归档