js数组遍历问题

遍历tableData1中的每一项,item1中有子数组为chidren,给item1.children重新赋值了,为何最后return的item1中的children并没有改变
回答
有些看晕了,建议优化一下,递归就好了 ...
// 对应 tableData1var data =  [{dept:"1",children: [{dept:"1-1"}]}];   
// 对应 tableData2               
var data2 = [{dept:"1", name: "sss"}, {dept: "1-1", name: "aaa"}];
let temp = null;
// orgin 数据中的对照组
//  dist 输出结果的数据源
function formatArray(orgin, dist){
    return dist.map(item => {
        // 递归结果
        item.children = item.children && formatArray(orgin,item.children) || [];
        // 缓存对照结果
        let temp = orgin.find( list => list.dept === item.dept);
        // 输出有效信息
        return temp && {...item, ...temp} || { dept: "" }
    })
}
JSON.stringify(formatArray(data2, data))
至少这个函数的输出是符合预期的,建议切换一下试试
至于原来的函数,抱歉没看出哪里有问题
以上是 js数组遍历问题 的全部内容, 来源链接: utcz.com/a/40321.html




