对象的赋值问题

172 阅读1分钟

问题代码

    let dataArr = [
        {name: '张三', age: 12},
        {name: '赵四', age: 26},
        {name: '李七', age: 35}
    ];
    let obj = {};
    let arr = [];
    dataArr.forEach( item => {  
        obj['manName'] = item.name;
        obj['manAge'] = item.age;
        console.log(obj,'---obj---')
        arr.push(obj);
    })
    console.log(arr,'---arr---')

从控制台打印的结果中,可以看出数组中前两次的push值都被对象的最后一次赋值给覆盖了

解决方法

    let dataArr = [
        {name: '张三', age: 12},
        {name: '赵四', age: 26},
        {name: '李七', age: 35}
    ];
    let arr = [];
    dataArr.forEach( item => {  
        arr.push({
            'manName': item.name,
            'manAge': item.age
        });
    })
    console.log(arr,'---arr---')