gpt4 book ai didi

javascript - 我在 API 响应中收到一个对象数组,它是嵌套数组。我想通过 ID 查找对象

转载 作者:搜寻专家 更新时间:2023-11-01 04:36:02 24 4
gpt4 key购买 nike

您好,这是一个从 API 响应接收的对象数组,我正在使用 angular.js 和 javascript,我想通过 id 查找获取对象,id 是“1_1_1”。是这个吗可能的?我坚持下去。请帮忙。

[
{
"text": "folder 1",
"parent": {
"id": "1",
"name": "folder 1"
},
"children": [
{
"text": "folder 1_1",
"parent": {
"id": "1_1",
"name": "folder 1_1"
},
"children": [
{
"text": "folder 1_1_1",
"parent": {
"id": "1_1_1",
"name": "folder 1_1_1"
},
"children": []
},
{
"text": "folder 1_1_2",
"parent": {
"id": "1_1_2",
"name": "folder 1_1_2"
},
"children": []
}
]
},
{
"text": "folder 1_2",
"parent": {
"id": "1_2",
"name": "folder 1_2"
},
"children": [
{
"text": "folder 1_2_1",
"parent": {
"id": "1_2_1",
"name": "folder 1_2_1"
},
"children": []
}
]
}
]
},
{
"text": "folder 2",
"parent": {
"id": "2",
"name": "folder 2"
},
"children": [
{
"text" : "folder 2_1",
"parent": {
"id": "2_1",
"name": "folder 2_1"
},
"children": []
},
{
"text" : "folder 2_2",
"parent": {
"id": "2_2",
"name": "folder 2_2"
},
"children": []
},
{
"text" : "folder 2_3",
"parent": {
"id": "2_3",
"name": "folder 2_3"
},
"children": [
{
"text" : "folder 2_3_1",
"parent": {
"id": "2_3_1",
"name": "folder 2_3_1"
},
"children": []
}
]
},
]
},
{
"text": "folder 3",
"parent": {
"id": "3",
"name": "folder 3"
},
"children": []
}
]

最佳答案

试试这个:

function isMatch(element, criteria) {
var parent = null;
if (typeof element.parent !== 'undefined') {
parent = element.parent;
if (typeof parent.id !== 'undefined') {
return (parent.id === criteria);
}
}
return false;
}

function findById (tree, criteria) {

for (var i = 0; i < tree.length; i = i + 1) {
var obj = tree[i];
if (isMatch(obj, criteria)) {
return obj;
};

if (typeof obj.children !== 'undefined') {
var foundElement = findById(obj.children, criteria);
if (foundElement != null) {
return foundElement;
}
}
}

return null;
}

关于javascript - 我在 API 响应中收到一个对象数组,它是嵌套数组。我想通过 ID 查找对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33252765/

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