sorting - mootools json filter with groups -
i have json string. looks like:
var data= [{"name":"name1","value":"value1","group":"group1","order":"1"}, {"name":"name2","value":"value2","group":"group1","order":"2"}, {"name":"name3","value":"value3","group":"group1","order":"3"}, {"name":"name4","value":"value4","group":"group2","order":"4"}, {"name":"name5","value":"value5","group":"group2","order":"5"}, {"name":"name6","value":"value6","group":"group3","order":"6"}, {"name":"name7","value":"value7","group":"group4","order":"7"}, {"name":"name8","value":"value8","group":"group4","order":"8"}, {"name":"name9","value":"value9","group":"group4","order":"9"}]
is possible convert html output using mootools javascript library sorting order:
<h2>group1</h2> <div>name1 ... value1</div> <div>name2 ... value2</div> <div>name3 ... value3</div> <h2>group2</h2> <div>name4 ... value4</div> <div>name5 ... value5</div> <h2>group3</h2> <div>name6 ... value6</div> <h2>group4</h2> <div>name7 ... value7</div> <div>name8 ... value8</div> <div>name9 ... value9</div>
this sorting function:
data.sort(function(a,b){ return parseint(a.order) > parseint(b.order); });
my render function follow:
var html_data = ''; data.each(function(d){ html_data += tmpl.render("data", d); }); container.set('html', html_data);
but don't know how group it.
thanks!
just test group previous value in each loop:
var html_data = ''; var group = ''; data.each( function( item, index ) { if ( group !== item.group ) { html_data += '<h2>'+item.group+'</h2>'; } html_data += '<div>'+item.name+'...'+item.value+'</div>'; group = item.group; }); container.set( 'html', html_data );
Comments
Post a Comment