首页 > 解决方案 > 在 JavaScript 对象的特定位置访问和添加节点

问题描述

我有一个多级 JS 对象。我需要在指定位置的特定节点中插入其他节点(数组或对象)。

尝试了以下方法

obj[0] = {'key':'value'};
obj["position"] = {'key':'value'};

没有什么对我有用。

这是我的对象:

var obj = {

      'id' : '1',
      'text' : 'post',
      'fill' : 'transparent',
      'img': 'assets/images/post-ico.png',
      'image' : 'test',
      'type' : 'component',
      'url' : 'test.com',
      'key': 'F',
      'fields' : 
            [{'name' : 'remote_address',
                'value' : '127.0.0.1',
                'group': 'F',
                'text' : 'Request',
                'fields' : 
                      [{'name' : 'remote_address',
                          'value' : '127.0.0.1',
                          'text' : 'Body',},              
                        {'name' : 'remote_address',
                          'value' : '127.0.0.1',
                          'text' : 'Headers'
                        }
                      ]
              },            
              {'name' : 'remote_address',
              'group': 'F',
              'value' : '127.0.0.1',
              'text' : 'Response',
              'fields' : 
              [{'name' : 'remote_address',
                'value' : '127.0.0.1',
                'text' : 'Headers',
                },
                {'name' : 'remote_address',
                  'value' : '127.0.0.1',
                  'text' : 'Body',
                  'fields':[]
                }
              ]
            }
          ],
        };

这是我要添加到fields:[]属性中的对象数据

{'name' : 'remote_address',
 'value' : '127.0.0.1',
 'text' : 'Headers',
}

我能够将数据作为节点添加到 obj 但它不在我想要的位置。

帮我在指定位置插入日期。

我希望数据作为最后一个fields:[]属性的值,并且我希望它在方括号内

标签: javascriptarraysobject

解决方案


You need to navigate the object

var obj = { 'id': '1', 'text': 'post', 'fill': 'transparent', 'img': 'assets/images/post-ico.png', 'image': 'test', 'type': 'component', 'url': 'test.com', 'key': 'F', 'fields': [{ 'name': 'remote_address', 'value': '127.0.0.1', 'group': 'F', 'text': 'Request', 'fields': [{ 'name': 'remote_address', 'value': '127.0.0.1', 'text': 'Body', }, { 'name': 'remote_address', 'value': '127.0.0.1', 'text': 'Headers' } ] }, { 'name': 'remote_address', 'group': 'F', 'value': '127.0.0.1', 'text': 'Response', 'fields': [{ 'name': 'remote_address', 'value': '127.0.0.1', 'text': 'Headers', }, { 'name': 'remote_address', 'value': '127.0.0.1', 'text': 'Body', 'fields': [] } ] } ],};

obj.fields[1].fields[1].fields.push({'name' : 'remote_address',
 'value' : '127.0.0.1',
 'text' : 'Headers',
})
console.log(obj.fields[1].fields[1].fields)


推荐阅读