多维数组的反向操作

xiaoxiao2021-02-28  41

在线效果

var dlist = [ { name: 'n1', id: 'n1', child: [ { name: 'n1-1', id: 'n1-1', child: [ name: 'n1-2', id: 'n1-2' ], }, { name: 'n2-2', id: 'n2-2' } ] }, { name: 'n2', id: 'n2' }, ]

类似于这种,子集是无限级的情况

当我们操作父级控制子集,这很好办。 当操作子集,去控制父级的情况,逻辑是:获取当前子集的父级,再针对各种情况递归操作。 主要方法:获取当前子集的父级的方法:

function getParent(id) { for (var i=0; i<dlist.length; i++) { if (dlist[i].id==id) { return null; } } return _getParent(dlist); function _getParent(list) { var childlist, isExist = false; for (var i=0; i<list.length; i++) { if (childlist=list[i].children) { childlist.forEach(function(v,i2) { if (v.id==id) isExist = true; }); if (isExist) { return list[i]; } if (_getParent(childlist)) { return _getParent(childlist); } } }; } }
转载请注明原文地址: https://www.6miu.com/read-2612527.html

最新回复(0)