Recursion in JavaScript with an IIFE
This example shows how recursion can be performed in JavaScript using an IIFE so that when you have a strung together set of workflow you don't have to go hunting for those named functions.
by Michael Perrenoud
March 06, 2015
CSS
p {
line-height: 1rem;
}
JavaScript
var $output = $('#output');
console.log = function (msg) {
$output.append('<p>' + msg + '</p>');
}
var data = [{
name: 'Name 1',
value: 'Value 1',
items: [{
name: 'Name 1a',
value: 'Value 1a'
}, {
name: 'Name 1b',
value: 'Value 1b'
}]
}, {
name: 'Name 2',
value: 'Value 2'
}, {
name: 'Name 3',
value: 'Value 3',
items: [{
name: 'Name 3a',
value: 'Value 3a'
}, {
name: 'Name 3b',
value: 'Value 3b'
}]
}];
(function printItems(items) {
if (!items) {
return;
}
for (var i = 0; i < items.length; i++) {
var item = items[i];
console.log(item.name + ' - ' + item.value);
printItems(item.items);
}
})(data);