I have this JSON:
var dataM = '[{"category":"cat01","subcategory":"subcat01"},{"category":"cat01","subcategory":"subcat01"},{"category":"cat01","subcategory":"subcat03"}, {"category":"cat01","subcategory":"subcat03"},{"category":"cat01","subcategory":"subcat02"},{"category":"cat02","subcategory":"subcat04"},{"category":"cat02","subcategory":"subcat04"},{"category":"cat02","subcategory":"subcat02"},{"category":"cat01","subcategory":"subcat05"}]';
I want to get unique values and build an HTML unordered list structure , so I make this:
var dataM = '[{"category":"cat01","subcategory":"subcat01"},{"category":"cat01","subcategory":"subcat01"},{"category":"cat01","subcategory":"subcat03"}, {"category":"cat01","subcategory":"subcat03"},{"category":"cat01","subcategory":"subcat02"},{"category":"cat02","subcategory":"subcat04"},{"category":"cat02","subcategory":"subcat04"},{"category":"cat02","subcategory":"subcat02"},{"category":"cat01","subcategory":"subcat05"}]';
var dataJSON = JSON.parse(dataM);
var arrayM = []; var html='';
for(i = 0; i< dataJSON.length; i++){
if(arrayM.indexOf(dataJSON[i].category) === -1){
arrayM.push(dataJSON[i].category);
}
}
html += '<ul>';
for(i = 0; i< arrayM.length; i++){
html += '<li>'+arrayM[i]+'</li>';
}
html += '</ul>';
$("#list").html(html);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="list"></div>
The problem is I only get the unique category values:
And I want to include the unique subcategory values of each category like this:
How can I fix it? I'd like to receive your help.