var textTag = [{text:"3", items:[{name:item1.jpeg}, {name:item2.jpeg}, {name:item3.jpeg}]},
{text:"2", items:[{name:item1.gif}, {name:item2.gif}, {name:item3.png}]},
]
我正在尝试获得一个如下所示的结果数组:
text:3
|_ jpeg
|_item1
|_item2
|_item3
text:2
|_ gif
|_item1
|_item2
|_ png
|_item3
但是我编写的代码给了我以下输出。
text:3
|_ jpeg
|_item1
|_ jpeg
|_item2
|_ jpeg
|_item3
text:2
|_ gif
|_item1
|_ gif
|_item2
|_ png
|_item3
请帮助我获得理想的结果
答案 0 :(得分:0)
你需要一些分组。
var textTag = [{ text: "3", items: [{ name: 'item1.jpeg' }, { name: 'item2.jpeg' }, { name: 'item3.jpeg' }] }, { text: "2", items: [{ name: 'item1.gif' }, { name: 'item2.gif' }, { name: 'item3.png' }] }],
grouped = textTag.map(function (a) {
var o = {};
a.items.forEach(function (b) {
var n = b.name.split('.');
o[n[1]] = o[n[1]] || [];
o[n[1]].push(n[0]);
});
return o;
});
document.write('<pre>' + JSON.stringify(grouped, 0, 4) + '</pre>');