js中for里面要对空对象进行属性的赋值,属性名为for循环的item

先上一波无脑代码:

 let timeObj = {};
 for (var i in craftsmanTimes){
    if (craftsmanTimes[i] == 1){
        timeObj.i = '1'
    }
  }

代码像我想的一样理所当然…… 结果debugger在for循环以后发现

timeObj{
    i:1
}

wtf……,我以为我的timeObj点出来的是craftsmanTimes循环出来的item的名字,比如‘two’,结果应还是我想的:

timeObj{
    two:1,
    three:1,
    four:1
}

还tm思索了一阵,以为这是个不解之谜,然后想出答案的我像个傻子……
放傻子的答案:

 let timeObj = {};
 for (var i in craftsmanTimes){
    if (craftsmanTimes[i] == 1){
        timeObj[i] = '1'
    }
  }

不想解释了,我对不起我的对象

猜你喜欢

转载自blog.csdn.net/weixin_42275932/article/details/81188417