I want to use the for...in functionality through the use of an iterator rather than calling for...in. From what I understand, I should be able to call something that JavaScript is internally calling in a for...in in order to extract the iterator. I just don't know what I need to be calling.
Basically, if I want to iterate over every key-value pair, I could do something like:
var data = {
foo: 42,
bar: {
asdf: "hello world",
qwerty: 0
},
baz: [3,1,4]
};
function walk(obj) {
var stack = new Array();
stack.push([obj.iterator, obj]);
while (stack.length > 0) {
if (stack[stack.length-1][0].hasNext()) {
var next = stack[stack.length-1].next();
document.getElementById("test").innerHTML += next + ": " + stack[stack.length-1][0][next] + "<br/>";
stack.push(stack[stack.length-1][0][next]);
} else {
stack.pop();
}
}
}
walk(data);
How can I do this?