如何为嵌套对象中具有相同名称的每个属性添加新键?

问题描述

方案A:我有多个JSON对象。这些对象的结构在一个对象与下一个对象之间可能有很大不同。一些属性包含一个数组,该数组又可以容纳更多的嵌套对象,而这些嵌套对象又可以容纳更多的数组,这些数组“一直向下”进行。数组可以直接嵌套在数组内,而对象可以直接嵌套在其他对象内。几乎没有标准化,并且我对脚本可以应用于哪些对象没有影响。

在整个对象中,对象将始终具有至少1个(但几乎肯定会有更多)属性,并且它们具有相同的键(“ foo”)。我正在尝试向这些属性添加属性,这些属性将为每个“ foo”属性分配一个“ bar”属性,并以数值ID作为值,从对象的顶部开始,分配1,向下钻入嵌套层,数组,并迭代到最底端,每次分配时ID都会增加1。仅应为“ foo”属性分配“ bar”属性。我觉得这应该很容易,但是我似乎无法掌握。

我本来以为“ foo”只能直接嵌套在另一个“ foo”下(或嵌套在“ foo”所拥有的数组中),但是我从那时起才知道有些对象不支持此操作,所以我原始解决方案(简单地调用了该函数,即通过obj [property]或obj [property] [i]传递数组,以代替属性并回收键)不再适用,就好像“ foo”嵌套在“ notfoo”下”,则找不到“ foo”属性

我一直在交替使用属性和键变量,但没有成功。

方案B:请参阅方案A,但是,如果不将数字ID应用于每个“ foo”属性,则“ bar” ID仅应在“ foo”属性下分配(如果它没有作为后代的其他“ foo”属性) (无论数组中的深度/隐藏度如何),换句话说,它是该路径上最深的foo属性

我一直在研究“ Lodash”,我认为它很好用,但是我还没有找到可以使用的语法。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)