将 init 的集合转换为标准对象?

Convert collection of init to standard objects?

如下所示,当我在控制台中查看对象集合时,我看到 [init, init]。为了直接访问属性,我必须将每个项目字符串化,然后将它们解析回一个对象,这看起来很愚蠢。有更好的方法吗?

通过将实例上的属性复制到新对象中,例如 { ...init },您将拥有一个新的 plain 对象,该对象不继承自 Init.prototype:

// Look at results in browser console, not snippet console:

class Init {
  constructor() {
    this.item = 'item';
  }
}

// Your original situation:
const arrOfInits = [new Init(), new Init()];
console.log(arrOfInits);

// Assign all properties on instance to standard object:
const arrOfObjects = arrOfInits.map(init => ({ ...init }));
console.log(arrOfObjects);

不过,您应该仍然能够访问 init 个实例的属性,而无需任何特殊代码:

// Look at results in browser console, not snippet console:

class Init {
  constructor() {
    this.item = 'item';
  }
}

// Your original situation:
const arrOfInits = [new Init(), new Init()];
console.log(arrOfInits[0].item);