在 Javascript 对象数组中查找递归(循环)id

users= [

{Id: 1, parentId: 2},

{Id: 2, parentId: 3},

{Id: 3, parentId: 4},

{Id: 4, parentId: 1}

]

我有一个对象数组。如果数组有,我怎样才能让循环 ID 返回 true。


1-2 2-3 3-4 4-1


案例:最后,Id 1 parentId不应该是1。


慕无忌1623718
浏览 794回答 1
1回答

繁星点点滴滴

您需要遍历“树”并跟踪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  })
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript