我想通过使用迭代器而不是调用... in来使用for ... in功能。根据我的理解,我应该能够调用JavaScript在内部调用for ... in以提取迭代器。我只是不知道我需要打电话。
基本上,如果我想迭代每个键值对,我可以做类似的事情:
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);
我该怎么做?