Javascript-数组混淆函数 函数数组列表(数组){ var list=null 对于(var i=0;i嵌套在中的“{value:10,rest:null}”

Javascript-数组混淆函数 函数数组列表(数组){ var list=null 对于(var i=0;i嵌套在中的“{value:10,rest:null}”,javascript,function,Javascript,Function,我从雄辩的javascript练习中观察了这个函数几个小时,但不知道为什么结果会颠倒。如果有任何帮助,我将不胜感激。在循环中设置一个输出,然后您可以看到它是如何工作的: function arrayToList(array) { var list = null for (var i = 0; i < array.length; i++) list = {value: array[i], rest: list}; return list; } console.log(a

我从雄辩的javascript练习中观察了这个函数几个小时,但不知道为什么结果会颠倒。如果有任何帮助,我将不胜感激。

在循环中设置一个输出,然后您可以看到它是如何工作的:

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}}
函数数组列表(数组){
var list=null
对于(var i=0;i
/*输出

{value:10,rest:null}

{value:20,rest:{value:10,rest:null}

{value:30,rest:{value:20,rest:{value:10,rest:null}}

*/

您已将list设置为null

循环中的第一次列表是“{value:10,rest:null}

->嵌套在中的“null”

循环中的第二次,列表是“{value:20,rest:{value:10,rest:null}

->嵌套在中的“{value:10,rest:null}”

最后一次,列表是“{value:30,rest:{value:20,rest:{value:10,rest:null}}


->“{value:20,rest:{value:10,rest:null}}”嵌套在其中。

在循环中设置一个输出,然后您可以看到它是如何工作的:

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}}
函数数组列表(数组){
var list=null
对于(var i=0;i
/*输出

{value:10,rest:null}

{value:20,rest:{value:10,rest:null}

{value:30,rest:{value:20,rest:{value:10,rest:null}}

*/

您已将list设置为null

循环中的第一次列表是“{value:10,rest:null}

->嵌套在中的“null”

循环中的第二次,列表是“{value:20,rest:{value:10,rest:null}

->嵌套在中的“{value:10,rest:null}”

最后一次,列表是“{value:30,rest:{value:20,rest:{value:10,rest:null}}


->“{value:20,rest:{value:10,rest:null}}”嵌套在其中。

在循环中设置一个输出,然后您可以看到它是如何工作的:

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}}
函数数组列表(数组){
var list=null
对于(var i=0;i
/*输出

{value:10,rest:null}

{value:20,rest:{value:10,rest:null}

{value:30,rest:{value:20,rest:{value:10,rest:null}}

*/

您已将list设置为null

循环中的第一次列表是“{value:10,rest:null}

->嵌套在中的“null”

循环中的第二次,列表是“{value:20,rest:{value:10,rest:null}

->嵌套在中的“{value:10,rest:null}”

最后一次,列表是“{value:30,rest:{value:20,rest:{value:10,rest:null}}


->“{value:20,rest:{value:10,rest:null}}”嵌套在其中。

在循环中设置一个输出,然后您可以看到它是如何工作的:

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}}
函数数组列表(数组){
var list=null
对于(var i=0;i
/*输出

{value:10,rest:null}

{value:20,rest:{value:10,rest:null}

{value:30,rest:{value:20,rest:{value:10,rest:null}}

*/

您已将list设置为null

循环中的第一次列表是“{value:10,rest:null}

->嵌套在中的“null”

循环中的第二次,列表是“{value:20,rest:{value:10,rest:null}

->嵌套在中的“{value:10,rest:null}”

最后一次,列表是“{value:30,rest:{value:20,rest:{value:10,rest:null}}


->“{value:20,rest:{value:10,rest:null}}”嵌套在中。

以下是在
for循环中迭代时发生的情况:

第一次迭代:
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={value:array[i],rest:list};

下面是在
for循环中迭代时发生的情况:

第一次迭代:
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={value:array[i],rest:list};

以下是您在