Data Structures
Let’s suppose we have all the information and we want to tell a person that she is Merlin and knows who everyone is… how would we organize that data?
Lists
Simple Lists
How about this database?
database = [ 'dogs', 32, 'cats', 42, 'birds', 5 ];
Access with subscripts?
database[1] // 'dogs'
Tuples
Better organization:
database = [ ['dogs', 32], ['cats', 42], ['birds', 5] ];
How many pets in our database?
database.length // 3
Helper Functions
Lists are fine if you have functions to help:
function pets(data, id) {
return data[id];
}
function pet_name(data, id) {
return pets(data, id)[0];
}
function pet_amount(data, id) {
return pets(data, id)[1];
}
pet_name(database, 2) // => 'birds'
pet_amount(database, 2) // => 5
Looping
Display all our pets?
for (var i=0; i < database.length; i++) {
console.log( "We have " + pet_amount(database, i) +
" " + pet_name(database, i) );
}
Maps
Maps are better for data:
database = { 'dogs': 32, 'cats': 42, 'birds': 5 };
The pythonic approach (called dictionaries):
database['dogs']
JavaScript is easier:
database.dogs //> 32
Looping
Quite easy too:
for (var pet in database) {
console.log("We have " + database[key] + " " + key);
}