对象变成数组

时间:2016-03-15 20:40:32

标签: javascript arrays object

我的对象变成了一个数组

this.projects = {};
var outerThis = this;

for(var i=0; i<10; i++){
  console.log(this.projects); // at this point projects is Object {}
  if(!(i in Object.keys(this.projects))){
      this.projects[i] = {title:"", trackOneUrl:"", trackTwoUrl:""};
      console.log(this.projects); // now its [object object]
      return;
  }
}

当我这样做时:

this.projects[i] = {title:"", trackOneUrl:"", trackTwoUrl:""}

projects从对象变为数组。

我想要实现的是

{'1':{title:"", trackOneUrl:"", trackTwoUrl:""}}

而不是

[{title:"", trackOneUrl:"", trackTwoUrl:""}]

3 个答案:

答案 0 :(得分:1)

您的this.projects仍然是一个对象,它完全符合您的要求。

[object Object]并不代表您的projects成为一个数组,它是一个对象的字符串表示。尝试拨打String({}),您会看到相同的效果。

答案 1 :(得分:0)

this.projects就是所谓的对象文字。 1.3.5

使用{}

创建和数组文字

从那里你可以使用一个简单的for循环为数组中的每个索引分配一个对象。

答案 2 :(得分:0)

如果你拿回来,你所拥有的将会正常工作。