gpt4 book ai didi

javascript - 在具有多个级别的对象文字中迭代和搜索值

转载 作者:行者123 更新时间:2023-11-29 10:48:55 24 4
gpt4 key购买 nike

这是我想做的:

  1. 我有一个多层次的树(javascript 对象文字结构)。
  2. 我有这个对象的特定键的值。
  3. 我想在结构中搜索这个确切的键值对,并返回另一个键的值作为输出。

为清楚起见,以下是我的对象字面量:

{
"nodeId": 1081,
"appId": 150,
"displayText": "Welcome here",
"Nodes": [
{
"nodeId": 2000,
"appId": 150,
"displayText": "Buy",
"parentNodeId": 1081,
"Nodes": [
{
"nodeId": 2003,
"appId": 150,
"displayText": "tCars",
"parentNodeId": 2000,
"Nodes": [
{
"nodeId": 2006,
"appId": 150,
"displayText": "Diesel",
"parentNodeId": 2003,
"Nodes": [
{
"nodeId": 2008,
"appId": 150,
"displayText": "Price", //This is what I want as return value.
"parentNodeId": 2006,
"Nodes": [],
"nodeCode": "RN_1_1_2_1_3_2_4_1",
"parentCode": "RN_1_1_2_1_3_2",
"jumpToNode": "RN_1_1" //here is the value that I have with me.
}
],
"nodeCode": "RN_1_1_2_1_3_2",
"parentCode": "RN_1_1_2_1"
}
],
"concatWithHeader": false,
"nodeCode": "RN_1_1_2_1",
"parentCode": "RN_1_1"
}
],
"nodeCode": "RN_1_1",
"parentCode": "RN"
}
],
"nodeCode": "RN",
"parentCode": "ROOT_NODE"
}

<强>2。我拥有的值(value)是“RN_1_1”对 jumpToNode

<强>3。我想在这个对象文字中搜索并获取键 displayText

的值

我为此进行了搜索和尝试,但无法获得遍历内部 Nodes 对象的逻辑。

到目前为止我写的方法:

function getObjects(tree){
var searchkey="RN_1_1";
var displayText = "displayText";
var nodeCode = "nodeCode";
var returnText;

if (tree.hasOwnProperty(nodeCode)) {
var obj = tree[nodeCode];

if(obj == searchkey){
returnText = tree[displayText]; //gives me the return text
break;
}
else{
//here I should iterate over the inner `Nodes` and get the required value.
}
}
}

请帮忙。

谢谢。

最佳答案

我认为你可以做这样的递归工作:

function findProperty(obj, prop, val, propToFetch) {
var answer;
if (obj.hasOwnProperty(prop) && obj[prop] === val) {
return obj[propToFetch];
}
for (var i = 0, len = obj.Nodes.length; i < len; i++) {
answer = findProperty(obj.Nodes[i], prop, val, propToFetch);
if (answer !== null) {return answer;}
}
return null;
}

var result = findProperty(data, "jumpToNode", "RN_1_1", "displayText");

此处的工作演示:http://jsfiddle.net/jfriend00/EjC5V/

关于javascript - 在具有多个级别的对象文字中迭代和搜索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14018664/

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