在对象数组中查找递归(圆形)id javascript

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在对象数组中查找递归(圆形)id javascript相关的知识,希望对你有一定的参考价值。

users= [
Id: 1, parentId: 2,
Id: 2, parentId: 3,
Id: 3, parentId: 4,
Id: 4, parentId: 1
]

我有一组对象。在这里,如果数组有,我如何获得循环ID返回true。

1-22-33-44-1

case:finaly,Id 1 parentId不应为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
  )

以上是关于在对象数组中查找递归(圆形)id javascript的主要内容,如果未能解决你的问题,请参考以下文章

在 JavaScript 对象数组中按 id 查找对象

在对象数组的数组中查找交叉点

[javaSE] IO流(递归查找指定文件)

查找和替换数组中的对象(基于 id)

猫鼬查询:在数组中按 id 查找对象

如何在对象数组中查找和更新值?