【发布时间】:2020-06-11 23:50:24
【问题描述】:
我有一个嵌套的对象数组,我试图在其中找到一个字符串。一旦我找到它,我想返回包含对象。 这是我的代码:
const myArray = [{
label: "Home",
last: "odlir",
children: [{
label: "Home 1",
last: "odlir1",
children: [{
label: "Home 2",
last: "odlir2"
}, {
label: "Home 3",
last: "odlir3"
}]
},
{
label: "Home 4",
last: "odlir4",
children: [{
label: "Home 5",
last: "odlir5"
}, {
label: "Home 6",
last: "odlir6"
}]
}
]
},
{
label: "dash",
last: "gom"
},
{
label: "principal",
last: "asd"
}
];
function contain(obj, string) {
if (obj == null)
return false;
if (obj.last == string)
return obj;
if (typeof obj.children == 'undefined')
return false;
for (let i = 0; i < obj.children.length; i++) {
if (contain(obj.children[i], string))
return obj;
}
return false;
}
function getObject(array, string) {
for (let i = 0; i < array.length; i++) {
if (contain(array[i], string)) {
return array[i];
}
}
}
console.log('test', getObject(myArray, 'odlir6'));
我正在取回我想要的对象,父对象甚至祖父。 这是这段代码的堆栈闪电:https://stackblitz.com/edit/js-hgchmx
【问题讨论】:
-
你想要什么数组?索引还是外部数组?
-
这能回答你的问题吗? JavaScript recursive search in JSON object
-
@HereticMonkey 谢谢我会试试这个答案
-
@NinaScholz 实际上我想要包含我正在寻找的字符串的对象
标签: javascript arrays object recursion