循环嵌套数据库查询,想给查完的数据添加属性。

[{ ID: 1, name: '首页', parent_ID: '0' },
{ ID: 2, name: '智慧资讯', parent_ID: '0' },
]
db.query(SELECT * FROM column_table WHERE parent_ID=0,(err,data)=>{

    if(err){
        console.log("err1:   "+err)
        res.status(500).send('database err').end();
    }else{
        data = JSON.parse(JSON.stringify(data))
        for(var i=0;i<data.length;i++){
            db.query(`SELECT * FROM column_table WHERE parent_ID=2`,(err,child_data)=>{
                if(err){
                    console.log("err2:   "+err);
                    res.status(500).send('database err').end();
                }else if(child_data.length==0){
                    data[i].child_column=[];
                }else{
                    data[i].child_column=child_data;
                }
            })
        }
     res.render('admin/index.html',{column_data:data})
    }                
  })

这是我查询后console.log(data) 输出的结果,我想给数组里每个对象添加一个属性,直接data[i].child_column='222',是错误的,应该怎么添加呢

阅读 2.4k
3 个回答

先给数据的操作结果data = JSON.parse(JSON.stringify(data)),然后再操作试试

使用Array.apply()可以让类数组调用数组的方法,然后你可以用map方法给每一项添加属性。

// 使用Array.apply调用数组方法,data就是类数组,这里给数组的每一项都加了一个key为'new',value为123的属性
Array.apply(null, data).map(x => x.new=123)
推荐问题