递归查找树中的某个节点
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}, ]
浙公网安备 33010602011771号