json数据怎么根据ID找索引值


  { 
   id: 1, 
   childNode: [ 
        {  
          id: 2, 
          name: '哈哈哈’ 
        } 
     ] 
  }, 
  { 
    id: 3,  
    childNode: [ 
        {  
          id: 4, 
          name: '哈哈哈’ 
        } 
     ] 
   } 
]

如果传入一个id = 2,那么返回他的父级索引值,加上他自己的索引

如果传入一个id = 1,那么返回他自己的索引,他子节点索引为空      
 怎么写个递归呢

function indexesOf(data, id) {
    for(let i = 0;i<data.length;i++) {
    const item = data[i];
    if(item.id == id) return [i];
    if(item.childNode) {
      const childIndexes = indexesOf(item.childNode, id);
      if(childIndexes) return [i].concat(childIndexes);
    }
  }
}

猜你喜欢

转载自www.cnblogs.com/plBlog/p/12439153.html