I have an array inside an array of objects that I want to retrieve a property from. I've accomplished it here, but it seems clunky. Is there a better way of looping through each StaffList
array within each room?
window.onload = getInitials;
var data = {
"room" : [
{
"id" : 1,
"StaffList": [
{
"inroom": true,
"initials": "MG"
},
{
"inroom": false,
"initials": "CT"
},
{
"inroom": true,
"initials": "MS"
}
]
},
{
"id" : 2,
"StaffList": [
{
"inroom": true,
"initials": "MG"
},
{
"inroom": false,
"initials": "CT"
},
{
"inroom": true,
"initials": "MS"
},
{
"inroom": true,
"initials": "MA"
}
]
}
]
}
function getInitials() {
var len = data.room.length;
for(i = 0; i < len; i++) {
var staffArray = data.room[i].StaffList;
var room = data.room[i].id;
if( staffArray != null ) {
var allStaff = staffArray.filter(function(person) {
if ( person.initials ) {
var inits = person.initials;
setInitials(room, inits);
}
});
}
}
}
function setInitials(room, initials) {
//get element by ID
//var staffContainer = $('#div' + room);
var staffContainer = document.getElementById('div' + room);
if(staffContainer != null) {
//create new div to append
var newDiv = document.createElement('div');
newDiv.innerHTML = initials;
//append newly created <div>
staffContainer.append(newDiv);
}
}