递归查找树中的某个节点

nodes是树结构数据,id是要查找的树节点的id

const node = this.getNode(nodes, this.id);
console.log(node);


getNode(treeNodes: Array<any>, key) {
    let node;
    for (const treeNode of treeNodes) {
      if (treeNode.Id === key) {
        node = treeNode;
        break;
      }
      if (!Util.IsNullOrEmpty(treeNode.Children)) {
        node = this.getNode(treeNode.Children, key);
        if (node) {
          break;
        }
      }
    }
    return node;
  }

 将数组添加,修改或删除某个元素后,其余元素的序号从1开始赋值

思路:将数组根据序号排序,再挨个赋值

const data = [
      { Name: 'lili', Rank: 1},
      { Name: 'luvy', Rank: 1},
      { Name: 'safrd', Rank: 2}, // 删除这个元素后,调用handleData()
      { Name: 'wreas', Rank: 3},
      { Name: 'asdas', Rank: 3},
      { Name: 'asdas', Rank: 4},
    ]

handleData(data) { let count
= 1; let curItem; return data.sort((a, b) => a.Rank - b.Rank).map(e => { if (curItem && curItem.Rank !== e.Rank) { count++; } curItem = e; e.Rank = count; return e; }); }

处理后的结果是

const data = [
      { Name: 'lili', Rank: 1},
      { Name: 'luvy', Rank: 1},
      { Name: 'wreas', Rank: 2},
      { Name: 'asdas', Rank: 2},
      { Name: 'asdas', Rank: 3},
    ]

 

posted on 2022-01-27 17:18  哈哈哈~_~  阅读(63)  评论(0)    收藏  举报