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

标签 javascript kendo-ui kendo-multiselect

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

enter image description here enter image description here

最佳答案

通过将实例上的属性复制到新对象中,例如 { ...init },您将拥有一个不继承的新普通对象来自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);

关于javascript - 将 init 集合转换为标准对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55308298/

相关文章:

javascript - 可以消除 'a' 标签吗?

javascript - jquery或js代码获取网页中当前选定的表单项/文本/图像的精确节点数据

javascript - Kendo UI Grid 多层层次结构(n-levels of hierarchy)

c# - 网格中的剑道多重选择未正确绑定(bind)

javascript - 如何在 div 悬停后更改 div 内的文本?

javascript - Firefox:单击并更改未附加到文档树中的复选框元素上的事件

kendo-ui - Kendo UI DropDownList 作为带有复选框的多选

javascript - kendo 模板在什么范围内执行?

angularjs - 如何防止 Kendo MultiSelect 在网格模板中编辑后丢失值?

javascript - 如何在剑道多选变量中获取选定的文本?