你能生成一个具有来自数组的属性名称的对象吗?

时间:2015-04-07 14:32:09

标签: javascript

假设我有一个可变长度数组,这样数组的每个元素都有一些属性:

var columns = [
    {
      field: 'state',
      label: 'State'
    }, {
      field: 'type',
      label: 'Type'
    }, {
      field: 'side',
      label: 'Side'
    }
]

我想创建一个新对象,使其对上面数组中的每个字段值都有一个命名属性,分配给另一个数组中的某个值(顺序):

row = {
                state: order[0]
                type: order[1]
                side: order[2]
}

但是基于原始数组,所以它类似于:

 row = {
                var i = 0
                for col in columns
                  row[col.field]: order[i++]
}

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:3)

像这样:

var row = {};

columns.forEach(function(column, index){
  row[column.field]  = order[index];
});

答案 1 :(得分:1)

你几乎做到了:

var row = {};
columns.forEach(function(col, index) {
    row[col.field] = order[index];
});