gpt4 book ai didi

javascript - 为什么这个 [circular] 元素附加在数组的末尾?

转载 作者:行者123 更新时间:2023-12-04 07:28:42 24 4
gpt4 key购买 nike

运行此代码时:

function arrayToList(arr) {
if (arr.length == 1) {
return {
value: arr[0],
rest: null
};
} else {
return {
value: arr[0],
rest: arrayToList(arr.splice(1))
};
}
}

function listToArray(list, arr = []) {
if (list.rest == null) {
return list.value;
} else {

arr.push(list.value);
arr.push(listToArray(list.rest, arr))
return arr;

}
return arr;
}

console.log(listToArray(arrayToList([1, 2, 3, 4, 5])));

应该将数组转换为链表然后再转换回数组,我得到了这些奇怪的 [Circular]出现的符号 - 这些是什么?
输出:
[ 1, 2, 3, 4, 5, [Circular], [Circular], [Circular] ]

最佳答案

[Circular]符号用于表示数组的元素,即数组本身。永远无法完全表示这个元素,因为它会在原地递归和无限扩展。
看到这一点的最简单方法是:

let a = [];
a.push(a);
console.log(a);

请注意,stackoverflow 的代码段系统有一种不同的方式来可视化包含自身的数组。如果您在自己的环境中运行此代码,您将看到 [Circular]现象发生。

关于javascript - 为什么这个 [circular] 元素附加在数组的末尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68073106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com