gpt4 book ai didi

javascript - 松散地搜索关联数组是否存在嵌套元素

转载 作者:行者123 更新时间:2023-12-03 10:18:21 26 4
gpt4 key购买 nike

考虑下面的关联数组:

{
"body": [
{
"key1": "value1",
"body2": {
"key2": "value2"
}
}
]
}

如何查找该数组的大致结构?例如,我怎么能说array[key1]低于array[key2]?如果措辞不正确,我深表歉意。

最佳答案

工作 fiddle :http://jsfiddle.net/4gy417o7/1/

objLevels = [];

function assignLevel(obj,level){

var tempArr = objLevels[level] || [];

for(var p in obj){
if(obj.hasOwnProperty(p))
tempArr.push(p);

if(typeof obj[p]=='object')
assignLevel(obj[p],(level+1));

objLevels[level] = tempArr;
}
}

assignLevel(yourObj,1);
console.log(objLevels);

通过使用原始对象和 level=1 启动递归函数 assignLevel,您最终应该得到一个对象数组 (objLevels),其中每个对象的键是嵌套级别,value 是对象中位于该嵌套级别的键的数组。

所以 objLevels 会是这样的

[
{1: ["body"] },
{2: [0] }, // this is because body is an array, and the object inside it is at index 0
{3: ["key1","body1"] },
{4: ["key2] }
]

然后你基本上可以找到任何特定的key变量的嵌套级别,如下所示:

function getKeyLevel(key){
for(var level in objLevels)
if(objLevels[level].indexOf(key) > -1)
return level;

return false;
}
console.log(getKeyLevel("key2")) // 4
console.log(getKeyLevel("key1")) // 3

关于javascript - 松散地搜索关联数组是否存在嵌套元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29759616/

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