javascript - 如何为javascript数组中的每个对象动态添加属性

标签 javascript object handsontable

我试图遍历一个对象数组,为每个对象添加一个属性和值。表的顺序很重要,因为我正在尝试使用可手动操作的 View 作为客户端来检索服务器端 mysql 表的内容。我希望 handsontable View 具有与表相同的列顺序,但我想插入一个复选框列作为第一列以允许记录选择。我有一把 fiddle http://jsfiddle.net/kc11/juo1e4at/#base执行循环,但我不确定如何为每个对象的属性值对添加前缀。 array unshift 似乎适用于数组。我想要一个对象的结果来自:

Object { car="Audi A4 Avant", year=2011, available=true, more...}

到:

Object { checkbox=false, car="Audi A4 Avant", year=2011, available=true, more...}

我怎样才能做到这一点

最佳答案

Javascript 对象中属性的顺序并不重要,它们的顺序并不严格。
给定

var cars = [
  {car: "Mercedes A 160", year: 2006, available: true, comesInBlack: 'yes'},
  {car: "Citroen C4 Coupe", year: 2008, available: false, comesInBlack: 'yes'},
  {car: "Audi A4 Avant", year: 2011, available: true, comesInBlack: 'no'},
  {car: "Opel Astra", year: 2004, available: false, comesInBlack: 'yes'},
  {car: "BMW 320i Coupe", year: 2011, available: false, comesInBlack: 'no'}
];

如果您没有准备好从后端发送的属性或出于其他原因(较小的有效负载大小等)想要在前端发送,您可以简单地执行以下操作。

for (i in cars) {
  cars[i].checkbox = false;
}

现在回到Handsontable列顺序的问题(这实际上是问题的主要问题),你可以定义如下:

var hot = new Handsontable(container,{
  data: cars,
  /* Other config */
  columns: [
    {data: "checkbox", type: 'checkbox'},
    {data: "car", type: 'text'}
    /*Other columns*/
  ]
});

参见 the manual了解更多信息。

关于javascript - 如何为javascript数组中的每个对象动态添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27749824/

相关文章:

javascript - 将函数对象转换为字符串 | "function(){...}"

Python 查询 SQLite 映射值到列名

javascript - 查找所有以英文字母数字字符开头并以英文字符结尾的文本,并使用 jQuery 将它们放在 <span> 标签内

javascript - 异步并等待获取请求

javascript - 为什么是 'inject with insertBefore avoid appendChild errors' ?

javascript - 访问 id 中的标题

javascript - JSON [对象对象] 转字符串

javascript - Handsontable:关闭自动调整行的大小(如何设置固定高度?)

在 Vuetify Stepper 内部时,Handsontable 不会立即显示

javascript - fullpage.js + handOnTable.js 滚动性能缓慢