好的,所以这应该不难,但是我遇到了奇怪的侥幸。
我正在尝试将一棵树打包到一个数组中,其中每个节点类似于:
- 标题:显示字符串
- 键:id-值
- children:子节点数组
这个侥幸太奇怪了,我根本无法理解它:当我尝试向节点添加一个子节点时,我做了类似的事情
if(node.children == undefined) {
node.children = new Array();
}
node.children.push({ title: value, key: key });
这是删除一些之前插入的节点......所以我做了一些调试,发现这段代码:
if(node.children == undefined) {
node.children = new Array();
}
这是错误的,这根本没有任何意义 - 如果node.children未定义,node.children = new Array()不应该删除任何东西......,对吗?
我做错了什么吗?如果是这样,我如何将树打包到 JavaScript 中的数组中?
最佳答案
您使用undefined
值的方式与Javascript标准实践不一致。我不确定这是否能解决您的问题,但请尝试将代码更改为
if (typeof(node.children) == 'undefined') {
node.children = [];
}
这实际上可能有帮助。另外,正如您所看到的,使用数组构造函数是不必要的:[]
创建一个新的空数组。
Undefined 并不是 Javascript 中的实际保留字。没有什么可以阻止您设置
undefined = 2;
此后任何与它的比较都会出现不可预测的行为。
关于javascript - 在 Javascript 中将树打包到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2269856/