push一个对象问题

新手上路,请多包涵
var text_2=['a','b','c','d','e','f'];
        var newarr=[];
        for(var i=0;i<text_2.length;i++){
                newarr.push({i:text_2[i]});
        }
         console.log(newarr);

为什么push出来的对象key为i:"a" 呢
clipboard.png
而不是123456呢

阅读 4.1k
4 个回答
为什么要用[]来将i框起来呢? 因为['属性的名字']与用.设置属性名字是一样的。只不过使用的具体场景不一样,所以写法就不一样啦
 var text_2=['a','b','c','d','e','f'];
    var newarr=[];
    for(var i=0;i<text_2.length;i++){
        newarr.push({[i]:text_2[i]});
    }
     console.log(newarr);
     

clipboard.png

你在key上写i,他会默认键名就是i,而不是变量i
要改成 {[i]:i}

楼主看代码:

var text_2=['a','b','c','d','e','f'];
var newarr=[];
for(var i=0;i<text_2.length;i++){
    // text_2[i] => a,b,c...
    // i => 0,1,2,3,4...
    newarr.push({[i]: text_2[i]});
}
console.log(newarr);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题