【发布时间】:2015-08-11 18:32:54
【问题描述】:
我有一个项目需要我将对象转换为字符串,而不使用 stringify。这样做的目的是实现一个将对象转换为字符串的递归函数。我似乎在这里遇到了两个问题:
1) 我的函数将对象输出为字符串,似乎只输出第一个值,而不是其余的。
function myToString(argObj) {
var str = "";
for (var val in argObj) {
if (argObj.hasOwnProperty(val)) {
str += val + " : " + argObj[val] + "\n";
console.log(str);
}
return str;
}
}
2) 我对上述 for in 循环的理解是,它会打印对象中的每个键/值对,但它只对第一个键/值这样做。使用递归,我怎样才能让它在每个键/值对上运行。
【问题讨论】:
-
首先要改变的事情之一是摆脱
document.write()。如果您想跟踪代码的执行,请使用console.log(),它会写入开发者控制台。 -
return 语句应该移到最后一行。否则它只会在 for 语句中运行一次。
-
用调试器解决问题不会花很长时间吗?
-
是的,但我正处于培训课程的早期阶段,需要我使用记事本来习惯这样的东西,所以有时我会错过它。
标签: javascript string object recursion