思路:利用递归逐层比较
源array:[{id: obj, children: []}],
目标target:[obj],
实现:
/** * 路径匹配算法 * @param array 源树 * @param target 目标路径 * @param index 路径下标 */ matching(array, target, index) { for(let i=0; i<array.length; i++) { if(array[i].id === target[index]) { if((array[i].children === undefined || array[i].children.length === 0) && target.length === (index + 1)) return array[i]; else return this.matching(array[i].children, target, index + 1); } }