雄辩的Javascript, listToArray.为什么我的for循环返回rest [object]当输入数组有超过
Eloquent Javascript, listToArray. Why does my for loop return rest [object] when input array has more than 3 elements
我目前正在阅读Eloquent Javascript第4章。练习问
写一个函数arrayToList,当给定[1,2,3]作为参数
时,它建立一个类似于前面的数据结构
使用下面的代码,我可以得到必要的输出-但只有当数组中的元素数量是3或更少。
function createNode (value, rest) {
return {
value: value,
rest: rest }
};
function arrayToList(arr) {
var index = arr.length;
firstNode = createNode(index,null);
listBuild = firstNode;
for (i =(index-1); i >0; i--) {
listBuild = createNode(i,listBuild)
}
arrayToList([1,2,3])返回"{value: 1, rest: {value: 2, rest: {value: 3, rest: null}}"
arrayToList([1,2,3,4])输出"{value: 1,:{值:2:{值:3: } } }"
在这种情况下,为什么这个函数生成[Object]的rest属性?
谢谢!
你的函数似乎工作得很好,所以我怀疑这是一个输出问题,而不是你的代码的任何问题。
如果你使用Node.js来测试你的代码,那么你就会遇到console.log
的实现问题。在Node.js中,console.log
使用util.inspect
格式化对象,默认情况下util.inspect
只显示深度为2的嵌套对象。您可以通过直接调用util.inspect
并使用depth
选项来改变这一点。您可以将其设置为更高的数字,或者您可以将其设置为null
以实现无限深度:
var util = require('util');
var result = arrayToList([1,2,3,4]);
console.log(util.inspect(result, { depth: null }));
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 可以't让我的if语句处理js中的html表单输入
- 名称输入的索引
- 如何编写HTML输入的JS内联
- 要求输入在数据列表中
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 如何将输入(type=text)从html表单传递到javascript函数
- 单击jquery清除输入值
- 而循环只设置php中输入字段中的第一个值
- 在输入字段中将最小金额设置为
- jQuery自定义验证比较多个输入的序列
- jQuery令牌输入轨道获取错误Uncaught TypeError:Object[Object Object]没有方法
- Jquery获取Div的嵌套输入,放置在Object中
- 停止Angular将[object object]插入到我的文本输入中
- 为什么object.observe不适用于输入字段的value属性
- 未捕获的TypeError: object不是在更改表单输入时调用函数的函数
- 当我们为其他子搜索输入输入AngularJS输入任何值时,避免[object object]出现在主搜索输入中
- 为什么在Javascript中输入({}+{})时显示object object ?
- 雄辩的Javascript, listToArray.为什么我的for循环返回rest [object]当输入数组有超过