gpt4 book ai didi

javascript - 如何遍历 JavaScript 对象的深层嵌套属性?

转载 作者:可可西里 更新时间:2023-11-01 01:17:57 31 4
gpt4 key购买 nike

我有一个具有 3 层嵌套的 JavaScript 对象。我很难从第三层嵌套中获取值。

我已经对 SO 进行了一些研究并了解了基本循环,但我似乎无法通过第一级。

这是我的代码

var customers = {
"cluster": [{
"id": "cluster1.1",
"color": "blue",
"flights": "784",
"profit": "524125",
"clv": "2364",
"segment": [{
"id": "segment1.1",
"color": "green",
"flights": "82",
"profit": "22150",
"clv": "1564",
"node": [{
"id": "node1.1",
"color": "orange",
"xpos": "1",
"ypos": "1"
}, {
"id": "node1.2",
"color": "orange",
"xpos": "1",
"ypos": "2"
}, {
"id": "node1.3",
"color": "orange",
"xpos": "1",
"ypos": "3"
}, {
"id": "node1.4",
"color": "orange",
"xpos": "1",
"ypos": "4"
}]
}, {
"id": "segment1.2",
"color": "red",
"flights": "2",
"profit": "2150",
"clv": "1564",
"node": [{
"id": "node2.1",
"color": "tan",
"xpos": "2",
"ypos": "1"
}, {
"id": "node2.2",
"color": "tan",
"xpos": "2",
"ypos": "2"
}, {
"id": "node2.3",
"color": "tan",
"xpos": "2",
"ypos": "3"
}, {
"id": "node2.4",
"color": "tan",
"xpos": "2",
"ypos": "4"
}]
}]
}, {
"id": "cluster1.2",
"flights": "4",
"profit": "5245",
"clv": "2364",
"segment": [{
"id": "segment1.2",
"flights": "2",
"profit": "2150",
"clv": "1564",
"node": [{
"id": "node3.1",
"xpos": "3",
"ypos": "1"
}, {
"id": "node3.2",
"xpos": "3",
"ypos": "2"
}, {
"id": "node3.3",
"xpos": "3",
"ypos": "3"
}, {
"id": "node3.4",
"xpos": "3",
"ypos": "4"
}]
}]
}, {
"id": "cluster1.3",
"flights": "10",
"profit": "456978",
"clv": "548",
"segment": [{
"id": "segment1.3",
"flights": "2",
"profit": "2150",
"clv": "1564",
"node": [{
"id": "node4.1",
"xpos": "4",
"ypos": "1"
}, {
"id": "node4.2",
"xpos": "4",
"ypos": "2"
}, {
"id": "node4.3",
"xpos": "4",
"ypos": "3"
}, {
"id": "node4.4",
"xpos": "4",
"ypos": "4"
}]
}]
}]
};

如何在节点内循环并检索 xpos 和 ypos?

最佳答案

您有一个对象 (customers),其数组存储在 cluster 中,您可以使用它进行迭代

var i, cluster;
for (i = 0; i < customers.cluster.length; i++)
{
cluster = customers.cluster[i];
}

cluster 有一个数组存储在 segment 中,您可以使用它进行迭代:

var j, segment;
for (j = 0; j < cluster.segment.length; j++)
{
segment = cluster.segment[j];
}

segment 有一个数组存储在 node 中,您可以通过以下方式对其进行迭代:

var k, node;
for (k = 0; k < segment.node.length; k++)
{
node = segment.node[k];
}

只需组合这些循环,您就可以将所有这些组合起来,以遍历 customers 上每个集群的每个段的每个节点:

var i, cluster, j, segment, k, node;
for (i = 0; i < customers.cluster.length; i++)
{
cluster = customers.cluster[i];

for (j = 0; j < cluster.segment.length; j++)
{
segment = cluster.segment[j];

for (k = 0; k < segment.node.length; k++)
{
node = segment.node[k];
//access node.xpos, node.ypos here
}
}
}

关于javascript - 如何遍历 JavaScript 对象的深层嵌套属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5189387/

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