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

时间:2019-03-22 21:57:19

标签: javascript kendo-ui kendo-multiselect

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

enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

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

// 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);