我试图写一个for循环来创建一个columns对象,如下所示:

columns: [
    {data: "productCode", title: "Product Code", width: "7%"},
    {data: "brand", title: "Brand", width: "10%"},
]


到目前为止,我已经尝试过:

定义每个列的属性:

var ltColumns = {

    "col1": {data: "productCode", title: "Product Code", width: "7%" },

    "col2": {data: "brand", title: "Brand", width: "10%"}
};


for循环填充列属性。

columns: [
        for (var key in ltColumns) {
            {
             data: ltColumns[key].data,
             title: ltColumns[key].title,
             width: ltColumns[key].width}
            }
         ];


但是,我一直收到错误Unexpected token for。有人可以帮我语法吗?

谢谢!!

最佳答案

您需要在数组外部执行for循环:

var columns = [];

for(var key in ltColumns) {
  columns.push({
    data: ltColumns[key].data,
    title: ltColumns[key].title,
    width: ltColumns[key].width
  });
}


我建议看MDN's docs on Array.prototype

我上面使用的方法是Array.prototype.push,它将项目推到数组的末尾。

注意:这是常见的ES5实现。

09-27 16:42