假设我有一个可变长度数组,这样数组的每个元素都有一些属性:
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++]
}
有没有办法做到这一点?
答案 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];
});