将 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);
如下所示,当我在控制台中查看对象集合时,我看到 [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);