JSFiddle - React, Tailwind, and code Playground
by bilbobaggins
JavaScript
const mergeTwoArraysByIndex = (arr1=[], arr2=[]) => {
// get larger of the two to iterate over
let first = [], second = [];
if(arr1.length > arr2.length) { first = arr1; second = arr2; }
else { first = arr2; second = arr1; }
// merge two arrays
const merged = first.map((item, index) =>
({ ...item, ...second[index] })
);
return merged;
}
const mergeArraysByIndex = (arrays=[], merged=[], index=0) => {
// stop when last array is reached
if(index >= arrays.length) return merged;
// get larger of the two to iterate over
const arr1 = merged, arr2 = arrays[index] || [];
let first = [], second = [];
if(arr1.length > arr2.length) { first = arr1; second = arr2; }
else { first = arr2; second = arr1; }
// merge two arrays
merged = first.map((item, index) => ({ ...item, ...second[index] }) );
return mergeArraysByIndex(arrays, merged, index+1);
}
let baseDt={"name":"asasas","recordstate":true,"genderid":[1515,1516,1513],"modnameid":[1515,1516]}
//baseDt=[[{"modnameid":1516},{"modnameid":1515},{"modnameid":1514}],[{"accesstype":"VO"},{"accesstype":"AA"}]]
let multiControlArrayPayload=function(baseDt)
{
var o={}
var o1={}
Object.keys(baseDt).map(function(dt)
{
if(Array.isArray(baseDt[dt]))
{
o1[dt]=baseDt[dt]
}
else
{
o[dt]=baseDt[dt]
}
})
var o5=[]
var o2=Object.keys(o1).map(function(dt)
{
var o6=o1[dt].map(function(dt1)
{
return {[dt]:dt1}
})
o5.push(o6)
return o6
})[0]
console.log(JSON.stringify(o5))
o5=[
[{"genderid":1515},{"genderid":1516}],
[{"modnameid":1515},{"modnameid":1516},],
[{"userid":1515},{"userid":1516},{"userid":1514}],
[{"ageid":1515},{"ageid":1516},{"ageid":1514},{"ageid":1515}]
]
let baseAr=mergeArraysByIndex(o5)
console.log(baseAr)
let o7=baseAr.map(function(g1)
{
return {...o,...g1}
})
return o7
}
let red1=multiControlArrayPayload(baseDt)