我需要将两个 JavaScript 数组转换为对象列表。其中一个输入数组表示输出对象的键,另一个包含其值(以及一些其他信息,与此问题无关)。
示例数据:
let theKeys = ['firstName', 'lastName', 'city'];
let theValues = [{data: [['John', 'Smith', 'New York'],
['Mike', 'Doe', 'Chicago'],
...
],
otherStuff: ...}
];
上述所需的输出:
output = [{
firstName: 'John',
lastName: 'Smith',
city: 'New York'
},
{
firstName: 'Mike',
lastName: 'Doe',
city: 'Chicago',
},
...
]
(这只是一个示例,我的实际数据来自 REST 响应,内容和长度可能有所不同。我正在使用显示表格数据的 Vue 应用程序。)
下面我现有的代码适用于少量数据,但在处理大量数据时会使所有浏览器崩溃或挂起。
return this.theValues.flatMap(results => {
let jsonified = [];
for (let v = 0; v < results.theValues.length; v++) {
let singleJson = {};
for (let k = 0; k < this.theKeys.length; k++) {
let key = this.theKeys[k];
singleJson[key] = results.data[v][k];
}
jsonified.push(singleJson);
}
return jsonified;
});
对于少至几千个结果,运行需要几分钟。我怎样才能让它更快?我是否缺少一些操作可以让我避免嵌套 for 循环?
斯蒂芬大帝
慕雪6442864
FFIVE
相关分类