Javascript - 数组混乱的函数
Javascript - Function on Array confusion
function arrayToList(array) {
var list = null
for (var i = 0; i < array.length; i++)
list = {value: array[i], rest: list};
return list;
}
console.log(arrayToList([10, 20, 30]));
// {value: 30, rest:{ value:20, rest:{value: 10, rest: null}}
我已经从雄辩的 JavaScript 练习中查看了这个函数几个小时,并且无法理解为什么结果是相反的。任何帮助将不胜感激。
以下是在for-loop
中迭代时发生的情况:
第一次迭代: i = 0
; list = {value:10, rest:null}
第二次迭代: i = 1
; list = {value:20, rest:{value:10, rest: null}}
第三次迭代: i = 2
; list = {value:30, rest:{value:20, rest:{value:10, rest: null}}}
在每次迭代中,您都将list
对象嵌套在其中:
list = {value: array[i], rest: list};
在循环中设置输出,然后你可以看到它是如何工作的:
function arrayToList(array) {
var list = null
for(var i = 0; i < array.length; i++) {
list = {value: array[i], rest: list};
console.log(list);
console.log(''n');
}
return list;
}
arrayToList([10, 20, 30]);
/*输出
{ 值:10,其余:空 }
{ 值: 20, 休息: { 值: 10, 休息: 空 } }
{ 值: 30, 休息: { 值: 20, 休息:{ 值: 10, 休息: 空 } } }
*/
您已设置列表 = 空。
循环中第一次,列表是"{值:10,休息:空}">
->嵌套在其中的">空"。
循环中的第二次,列表是"{ 值:20,休息:{ 值:10,休息:空} }">
-> ">{ 值: 10, rest: null }" 嵌套在其中。
最后一次,列表是"{ 值:30,休息:{ 值:20,休息:{ 值:10,休息:空 } } }
">-> ">{ 值: 20, 休息: { 值: 10, 休息: 空 } }" 嵌套在里面。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 如何在JavaScript中将字符串转换为函数引用
- 用嵌套函数和默认函数定义函数
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- JQuery合并了keyup和focusout两个函数
- Javascript - 数组混乱的函数
- 将项目放在动画和 inserbefore 函数混乱之后
- JavaScript 混乱中的函数表达式
- 向 Jquery 提供一个非匿名函数:成功 + 额外的混乱
- AngularJS私有函数单元测试混乱
- 函数调用混乱的事件处理
- 函数的对象语法混乱
- 使用回调来减慢循环的函数在递归使用时会变得混乱
- 语法混乱,用输入按钮调用JS函数
- 封闭函数的行为混乱
- 从Ionic modal调用函数后,参数混乱
- JS原型函数'this'混乱