【发布时间】:2022-11-10 22:04:02
【问题描述】:
我有以下 JavaScript 代码:
const data = {
columnFields: {
columnField1: 'FieldValue1',
columnField2: 'FieldValue2',
columnField3: 'FieldValue3',
},
dataSets: [
{
columnProp1: 'value1',
columnProp2: 'value2',
columnProp3: 'value3',
},
{
columnProp1: 'value11',
columnProp2: 'value22',
columnProp3: 'value33',
},
],
};
我想从这些数据中看到以下输出:
const expectedOutput = [
{
FieldValue1: 'value1',
FieldValue2: 'value2',
FieldValue3: 'value3',
},
{
FieldValue1: 'value11',
FieldValue2: 'value22',
FieldValue3: 'value33',
},
];
我尝试了以下解决方案
function processData() {
const processDataSet = [];
const obj = {};
data.dataSets.forEach((item) => {
for (const key in item) {
const element = item[key];
for (const prop in data.columnFields) {
obj[data.columnFields[props]] = element;
}
}
processDataSet.push(obj);
});
return processDataSet;
}
这给了我以下输出,这不是我想要的:
const output = [
{
FieldValue1: 'value33',
FieldValue2: 'value33',
FieldValue3: 'value33',
},
{
FieldValue1: 'value33',
FieldValue2: 'value33',
FieldValue3: 'value33',
},
];
这是预期的,因为每次它都覆盖该值并以最后一个值结束。请帮助我了解代码的方向,通过它我可以同时在循环中分配单个值。
【问题讨论】:
标签: javascript arrays object for-in-loop