我遇到了一个问题,我试图加入两个类似于以下数组的数组:
var participants = [
{id: 1, name: "abe"},
{id:2, name:"joe"}
];
var results = [
[
{question: 6, participantId: 1, answer:"test1"},
{question: 6, participantId: 2, answer:"test2"}
],
[
{question: 7, participantId: 1, answer:"test1"},
{question: 7, participantId: 2, answer:"test2"}
]
];
使用嵌套循环:
_.each(participants, function(participant) {
var row, rowIndex;
row = [];
var rowIndex = 2
return _.each(results, function(result) {
return _.each(result, function(subResult) {
var data;
data = _.find(subResult, function(part) {
return part.participantId === participant.id;
});
row[rowIndex] = data.answer;
return rowIndex++;
});
});
});
只要数组很小,这可以正常工作,但是一旦它们变大,我就会遇到巨大的性能问题。有没有更快的方法以这种方式组合两个数组?
这是我真实数据集/代码的精简版。请让我知道是否有任何不妥之处。
供参考
我的最终目标是为每个参与者创建一个包含他们答案的行集合。就像是:
[
["abe","test1","test1"],
["joe","test2","test2"]
]