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)