gpt4 book ai didi

javascript - 寻找最近的祖先

转载 作者:行者123 更新时间:2023-11-28 01:07:04 25 4
gpt4 key购买 nike

我遇到了一个问题,正在想办法解决,希望有人能帮忙。输入是这样的:

{
"John": ["Sam", "Megan"],
"Sam": ["Donna", "Josh", "Flora"],
"Megan": ["Stephanie", "Nathan"]
}

其中 Sam 和 Megan 是 John 的 child 等。我需要找到 2 个名字最接近的祖先。例如,Sam 和 Josh 将返回 Sam,Donna 和 Josh 将返回 Sam,等等。我已经完成了该部分,但问题是如果他们开始移动结构,那么他们将其更改为: p>

{
"Sam": ["Donna", "Josh", "Flora"],
"Megan": ["Stephanie", "Nathan"],
"John": ["Sam", "Megan"]
}

那么我的代码就有问题了。有人可以给我一些提示吗?我的 JavaScript 知识非常基础,所以如果有人能提供帮助那就太好了。

最佳答案

查看谱系和家谱实际上就是检查树结构。因此,有一些相似之处可以利用。在树的形式中,它是深度。在此谱系模型中,它将是一代号。请注意,您已经在逻辑上执行此操作(基于索引)。现在您只需要把它具体化即可。

我不确定什么最适合您如何编写这些内容。但是当您知道顺序时,就需要将其添加到数组中或将其包装在对象中。

数组版本

{
"Sam": [2,"Donna", "Josh", "Flora"],
"Megan": [2,"Stephanie", "Nathan"],
"John": [1,"Sam", "Megan"]
}

对象版本

{
"Sam": {"generation":2,"children":["Donna", "Josh", "Flora"]},
"Megan": {"generation":2,"children":["Stephanie", "Nathan"]},
"John": {"generation:1","children":["Sam", "Megan"]}
}

或者更好的版本是为家族谱系分配某种唯一标识符,以便您也可以区分它们。

{
"Sam": {
"family":"f31460e9",
"generation":2,
"children":["Donna", "Josh", "Flora"]
},
"Megan": {
"family":"f31460e9",
"generation":2,
"children":["Stephanie", "Nathan"]},
"John": {
"family":"f31460e9",
"generation:1",
"children":["Sam", "Megan"]
}
}

关于javascript - 寻找最近的祖先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24941624/

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