【发布时间】:2018-09-11 12:41:22
【问题描述】:
为什么list的值全局不变?不应该为空吗?
let list = {value: 1, rest: { value: 2, rest: null}};
function listToArray(list){
let array = [];
while( list != null)
{
array.push(list.value);
list = list.rest;
}
return array;
}
为什么全局array1通过下面的函数后改变了, 如果用函数中的局部变量数组来引用呢?
让数组1 = [1,2,3];
函数 reverseArrayInPlace(数组){
for(let i = 0; i
let temp = array[i];
array[i] = array[array.length - i - 1];
array[array.length - i - 1] = temp;
}
}
【问题讨论】:
-
你到底想做什么?列表应该是什么?
-
Javascript 没有列表对象,所以如果你有一个列表,你应该已经在使用数组了。什么是
list,什么是list.rest和list.value?为什么您希望list为空?除非list在传入时为空,否则您将陷入无限循环。 -
这是一个来自文本 eloquent JavaScript 的练习,它将嵌套对象转换为数组。练习在本章 - 数据结构:对象和数组中。该列表是嵌套对象,键为“value”和“rest”。 rest 保存嵌套对象,其键也是 value 和 rest,直到 rest 为 null
-
在方法中访问或更改
list变量时,使用局部变量list代替全局变量。 -
@pseudobbs 不,你没有。如果列表为空,则返回一个空数组
标签: javascript