javascript - 对象变成数组

标签 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:""}]

最佳答案

您的 this.projects 将仍然是一个对象,并且它完全按照您的意愿行事。

那个[object Object]并不意味着您的projects变成一个数组,它是一个对象的字符串表示形式。尝试调用 String({}),您将看到相同的效果。

关于javascript - 对象变成数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36021667/

相关文章:

javascript - 如何检查对象是否至少包含一个键,其值包含 JavaScript 中的子字符串?

javascript - React defaultProps 未按预期工作

c - 指针数组的大小

javascript - 编写包含 HTML 的长 Javascript 变量的最佳方法

java - Eclipse 调试问题

oop - 为什么代理商和经理被认为是糟糕的 O-O 设计

尝试对对象调用 get 时,Javascript 不会抛出错误

javascript - Meteor 本地化/i18n 库比较

javascript - 是否清除单选/选择菜单值以外的表单输入字段?

javascript - 带或不带引号的 JS 对象键?