【发布时间】:2019-07-14 17:43:09
【问题描述】:
我正在使用 for 循环遍历两个数组并生成一个对象。这行得通,但我需要格式稍有不同的最终对象。
首先,这是遍历数组并形成我的对象的代码:
differences:
[ { kind: 'N', path: ['id_number'], rhs: '1' },
{ kind: 'N', path: ['person_firstname'], rhs: 'x1' },
{ kind: 'N', path: ['person_lastname'], rhs: 'x2' } ]
mappings: [ { lhs: 'name.first', rhs: 'person_firstname' },
{ lhs: 'name.last', rhs: 'person_lastname' },
{ lhs: 'name.middle', rhs: 'person_middlename' } ]
let outResult = {};
for (let diff of differences) {
for (let mapping of mappings) {
if (diff.path[0] === mapping.rhs) {
p = mapping.lhs;
v = diff.rhs;
outResult[p] = v;
}
}
}
这给了我一个看起来像这样的对象:
{ name.first: 'x1', name.last: 'x2' }
我需要适合我的模型的格式应该是这样的:
name: {
first: "x1",
last: "x2"
}
};
我可以在此处使用哪些操作来按我需要的方式对其进行格式化?
【问题讨论】:
-
请同时添加数据。
-
你在寻找类似this的东西吗?
-
看起来
p是一个包含name.first的字符串。你不能用outResult[p.split('.')[1]] = v吗?还是有更多可能的.? -
上面已经添加了数组数据。
标签: javascript object