【发布时间】:2016-07-30 06:55:23
【问题描述】:
我在尝试对对象进行字符串化时遇到递归问题。
我想知道在替换器中迭代槽键 -> 值时是否有人知道当前深度是多少? 我想用它的 ID 替换一个引用,但只有在我处于特定深度时。
这是一个极简主义的例子:
var a = {
id: 'idOfA',
linkedItems: []
};
var b = {
id: 'idOfB',
linkedItems: []
};
var c = {
id: 'idOfC',
linkedItems: []
};
a.linkedItems.push({
from: 0,
to: 0,
item: b
});
b.linkedItems.push({
from: 0,
to: 0,
item: a
}, {
from: 0,
to: 0,
item: c
});
c.linkedItems.push({
from: 0,
to: 0,
item: a
}, {
from: 0,
to: 0,
item: b
});
var obj = {
things: {},
otherThings: {},
items: [a, b, c]
};
从 obj 开始,我需要用它们的 id 替换“linkedItems”属性中的每个引用。 我强硬的更简单的方法是先将其字符串化... :)
【问题讨论】:
-
写相关代码..写下你的尝试
-
显示你的输入数据
-
“替换器”实际上只是一种过滤机制,它不计算被字符串化对象的深度。
-
抱歉,恭喜您成为世界上为数不多的利用替换器的人之一,这是一个未被充分利用的功能,但在这里对您没有帮助。
-
@AbdennourTOUMI 要求尝试是没有意义的。替换器要么可以访问当前深度,要么不能。在这种特殊情况下,它不能。
标签: javascript json parsing