如何在我的情况下创建一个javascript数组?

时间:2014-03-29 21:50:37

标签: javascript arrays object

我想创建一个如下所示的obj:

var collection = [{
    'title': 'title1',
    'content': {
        'subtitle': 'sub1',
        'contents': 'sub content 1'
    }
}, {
    'title': 'title2',
    'content': {
        'subtitle': 'sub2',
        'contents': 'sub content 2'
    }
}, {
    'title': 'title3',
    'content': {
        'subtitle': 'sub1',
        'contents': 'sub content 1'
    }
}];

我的数组就像

var section = [];
for (var i = 0; i < data.length; ++i) {
    section['title'] = data.title;  //data.title represent title1 to title 3
    for (var j = 0; j < data.sections.length; ++j) {
        //data.sections[j].content represent {'subtitle':'sub1', 'contents':'sub content 1'}
    }
}

我不知道如何调整我的代码来创建像上面这样的obj。任何人都可以帮我吗?非常感谢!

2 个答案:

答案 0 :(得分:0)

这样的事情会起作用吗?在没有确切了解数据数组的样子的情况下,我做了一些假设。

var section = [],
        obj,
        d,
        s;
      for (var i = 0; i < data.length; ++i) {
          d = data[i];
          obj = {};
          obj.content = {};
          obj.title = d.title;
              for (var j = 0; j < d.sections.length; ++j) {
                  s = d.sections[j];
                  obj[s.subtitle] = s.content;
              }

        section.push(obj);
      }

答案 1 :(得分:0)

你可以使用像这样的reduce函数,但你需要修改它:

var obj = arr.reduce(function(o, v, i) {
   o[i] = v;
   return o;
}, {});