Walkies
Walk multi dimensional array (also woks with associative arrays)
HTML
<div id="console-log"><h3>Output:</h3></div>
CSS
.console-line
{
font-family: monospace;
margin: 2px;
}
JavaScript
var consoleLine = "<p class=\"console-line\"></p>";
console = {
log: function (data) {
$("#console-log").append($(consoleLine).html(data));
}
};
var my_multi_dimensional_array = ["a", "b", "c", ["d", "e", "f"], "g", ["h", ["i"],
["j", "k"], "l", ["m", ["n", "o", [
[
["p"], "q"]
]]]
]];
(function walkies(arr, path, callback, root) {
$.each(arr, function (i, v) {
//push index onto path stack
path.push(i);
var recurseable = ($.isArray(v) || $.isPlainObject(v)) ;
var recurse = callback.call(v, recurseable, v, path, i, root || arr) && recurseable;
//call callback and continue recursing this node until callback returns false
if ( recurse) {
walkies(v, path, callback, root || arr);
}
//pop last index off path stack
path.pop();
});
}(my_multi_dimensional_array, [], function (isLeaf, node, path, index, root) {
console.log( "[" + path.join("],[") + "]=" + node + ' test' );
return true;
}));