将公司和联系人数组合并为按第三个数组排序的单个结果



我正在尝试创建一个由公司和联系人条目组成的组合result数组。

结果数组应该有一个公司条目,后面跟着他们各自数量的联系人条目,如amount数组所示。

这是我已经尝试过的:

var company = [company1,company2,company3]
var contacts = [contact1,contact2,contact3,contact4,contact5,contact6]
var amount = [2,1,3]
var result = []
for (let i = 0; i < company.length; i++) {
result.push(company[i])
for (let x = 0; x < amount[i]; x++) {
result.push(contacts[x])
}
}
output = [{result}]

我的预期输出是:

result = [company1,contact1,contact2,company2,contact3,company3,contact4,contact5,contact6]

如果我能在每个公司内部创建一个数组,那就太好了。

您的代码非常接近。

在处理当前公司的联系人时,您只需要考虑已经推送到结果数组中的联系人,而不是每次都从列表的开头开始。

var company = ['company1','company2','company3'];
var contacts = ['contact1','contact2','contact3','contact4','contact5','contact6'];
var amount = [2,1,3];
var result = [];
let c = 0;
for (let i = 0; i < company.length; i++) {
result.push(company[i]);

for (let j = 0; j < amount[i]; j++) {
result.push(contacts[c]);
c++;
}
}
console.log(result);

最新更新