在JSobject中追加元素

时间:2018-08-27 13:16:38

标签: javascript json

我正在尝试创建具有这种结构的JS对象

{ node1: 
  [ 'test1.1',
   'test1.2'],
  node2:
   ['test2.1',
   'test2.2']
}

这是我的代码

    for (var k = 0; k < keys.length; i++){
            key = keys[k];
            var result = {};
            var r = [];
            for (var i = 0; i < elements.length; i++){
                r.push(elements[i]);
            }
            result[key] = r;
}

结果看起来与我的预期有些不同,并且不是有效的JSON:

{ node1: 
   [ 'test1.1',
     'test1.2'] }
{ node2: 
   [ 'test2.1',
     'test2.2' ] }

我不确定代码有什么问题。

1 个答案:

答案 0 :(得分:1)

var result = {};循环外部声明for,它将在当前在循环内部创建一个新对象时起作用。

var result = {};
for (var k = 0; k < keys.length; k++) {
  key = keys[k];
  var r = [];
  for (var i = 0; i < elements.length; i++) {
    r.push(elements[i]);
  }
  result[key] = r;
}

您在第一个循环中也有i++,因此请将其更改为k++,否则将出现无限循环。