1const Apify = require('apify');
2
3function extractArrays(obj){
4 const arrays = {};
5 for(let key in obj){
6 const val = obj[key];
7 if(Array.isArray(val)){
8 arrays[key] = val;
9 delete obj[key];
10 }
11 }
12 return arrays;
13}
14
15function extendArray(array, name, extObj){
16 const result = [];
17 for(let elem of array){
18 result.push(({[name]: elem,... extObj }));
19 }
20 return result;
21}
22
23function getExtended(obj){
24 let results = [];
25 const arrays = extractArrays(obj);
26 for(let key in arrays){
27 results = results.concat(extendArray(arrays[key], key, obj));
28 }
29 return results;
30}
31
32Apify.main(async () => {
33 const input = await Apify.getValue('INPUT');
34
35 let output = [];
36 for(let inObj of input){
37 output = output.concat(getExtended(inObj));
38 }
39
40 await Apify.setValue('OUTPUT', output);
41});