为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕无忌1623718 2022-06-09 16:20:51
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。
查看完整描述

1 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

您需要遍历“树”并跟踪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

  })


查看完整回答
反对 回复 2022-06-09
  • 1 回答
  • 0 关注
  • 793 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号