我想创建一个如下所示的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。任何人都可以帮我吗?非常感谢!
答案 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;
}, {});