如何在我的情况下创建一个对象?

时间:2014-03-28 03:22:10

标签: javascript jquery object

我想创建一个像以下

的对象
var obj = {
  'title1' : { 'sub-title':'subtitle1',
              'sub-content':'sub-content1'
             },
  'title2' : { 'sub-title':'subtitle2',
              'sub-content':'sub-content2'
             },

  'title3' : { 'sub-title':'subtitle3',
              'sub-content':'sub-content3'
             }
}

我的js

obj = {};

for (var i = 0; i < data.length; ++i) {
        data.[i].title  //represent title1 , title2 and title3
        for (var j = 0; j < data[i].title.length; ++j) {
           data.[i].title[j].sub-title  //represent sub-title1 to sub-title3
           data.[i].title[j].sub-content  //represent sub-content1 to sub-content3
        }
}

我不确定如何创建上面的obj结构。谢谢你的帮助!

3 个答案:

答案 0 :(得分:0)

一些现代浏览器支持将JSON解析为本机对象:

var result = JSON.parse(obj); 然后你可以继续作为结果[title1] .sub-title等等/

http://www.json.org/js.html

你也可以看看有很多解析器的json2.js(https://github.com/douglascrockford/JSON-js)。

答案 1 :(得分:0)

还没有工作吗?您只是尝试使用称为数据的错误var来迭代对象。

尝试使用这样的循环:

for(var i in obj){
    var subObject = obj[i];
    console.log('---'+i+'---');
    for(var j in subObject){
        console.log(j + ": "+subObject[j]);
    }
}

答案 2 :(得分:0)

试试这个:

obj = {};
for (var i = 0; i < data.length; i++) {
  obj['title' + i] = {};
  for (var j = 0; j < data[i].length; j++) {
    obj['title' + i]['sub-title' + j] = data[i][j].title;
    obj['title' + i]['sub-content' + j] = data[i][j].content;
  }
}

只需进行一些更改即可调整data对象的结构,但基本上你可以用这种方式构造所需的对象/输出。