Edd*_*edt 2 javascript node.js console.log
我正在从一本名为“Eloquent Javascript”的书中学习 JavaScript
我正在尝试解决这里描述的练习:http : //eloquentjavascript.net/04_data.html#h_nSTX34CM1M
我设法确定此代码有效:
function arrayToList(array) {
var list = null;
for (var i = array.length - 1; i >= 0; i--)
list = {
value: array[i],
rest: list
};
return list;
}
console.log(arrayToList([1, 2, 3]));
Run Code Online (Sandbox Code Playgroud)
结果:{值:1,休息:{值:2,休息:{值:3,休息:空}}}
到目前为止,一切都很好,根据这本书,这是正确的解决方案。但!
当我尝试运行相同的东西但使用更长的数组时,让我们说:
console.log(arrayToList([1, 2, 3, 4, 5]));
Run Code Online (Sandbox Code Playgroud)
结果是:{ value: 1, rest: { value: 2, rest: { value: 3, rest: [Object] } } }
为什么是这样?我的代码错了吗?
更长的阵列没有任何问题。 console.log()是一个非标准的、特定于浏览器的实现,一些实现设置了它们将显示多少级对象嵌套的上限。当它们达到该级别时,它们只是显示[Object]而不是递归到它以显示更深的嵌套。
如果您实际上设置了一个断点并在调试器中检查您的变量,您将看到您可以尽可能深入地扩展嵌套级别并查看所有内容。
或者,你可以这样做:
console.log(JSON.stringify(arrayToList([1, 2, 3, 4, 5])));
Run Code Online (Sandbox Code Playgroud)
在使用之前手动将整个内容转换为字符串console.log()。
| 归档时间: |
|
| 查看次数: |
872 次 |
| 最近记录: |