在 Javascript 对象数组中查找递归(循环)id
Find recursive (circular) id in array of Javascript objects
users= [
{Id: 1, parentId: 2},
{Id: 2, parentId: 3},
{Id: 3, parentId: 4},
{Id: 4, parentId: 1}
]
我有一组对象。如果数组有,我怎样才能得到循环 Id return true。
1-2
2-3
3-4
4-1
case:最后,Id 1 parentId不应该是1.
您需要遍历 "tree" 并跟踪您遇到的所有节点的 Id
。如果您多次遇到给定的 Id
,则显示错误。
users = [
{ Id: 1, parentId: 2 },
{ Id: 2, parentId: 3 },
{ Id: 3, parentId: 4 },
{ Id: 4, parentId: 1 },
{ Id: 34, parentId: 34 },
]
var ids = {}
users.forEach(function (e) {
if (e.Id == e.parentId) {
console.log(`${e.Id} has same parent ${e.parentId}`)
}
if (ids[e.Id] || ids[e.parentId]) {
console.log(`For id ${e.Id}, found duplicate parent ${e.parentId}`)
}
ids[e.Id] = true
})
users= [
{Id: 1, parentId: 2},
{Id: 2, parentId: 3},
{Id: 3, parentId: 4},
{Id: 4, parentId: 1}
]
我有一组对象。如果数组有,我怎样才能得到循环 Id return true。
1-2 2-3 3-4 4-1
case:最后,Id 1 parentId不应该是1.
您需要遍历 "tree" 并跟踪您遇到的所有节点的 Id
。如果您多次遇到给定的 Id
,则显示错误。
users = [
{ Id: 1, parentId: 2 },
{ Id: 2, parentId: 3 },
{ Id: 3, parentId: 4 },
{ Id: 4, parentId: 1 },
{ Id: 34, parentId: 34 },
]
var ids = {}
users.forEach(function (e) {
if (e.Id == e.parentId) {
console.log(`${e.Id} has same parent ${e.parentId}`)
}
if (ids[e.Id] || ids[e.parentId]) {
console.log(`For id ${e.Id}, found duplicate parent ${e.parentId}`)
}
ids[e.Id] = true
})