JSFiddle - React, Tailwind, and code Playground

JavaScript

// only one single rule processing is shown, several with arrays and for each
// and it can be optimized, encapsuled etc., I'm just showing the idea.
var myMap = 'outputModel.items[].sku';
var apiMap = 'items[].skus[0].num';
var scriptA = '', scriptB = '';
items = [{
    'name': 'Hammer',
    'skus':[{'num':'12345qwert'}]
  },{
    'name': 'Bike',
    'skus':[{'num':'asdfghhj'},{'num':'zxcvbn'}]
  },{
    'name': 'Fork',
    'skus':[{'num':'0987dfgh'}]
  }];
outputModel = {
  'storeName': '',
  'items': []
};
var myParts = myMap.split('[]');
var apiParts = apiMap.split('[]');
if (myParts.length != apiParts.length) {alert('error');}
if (myParts.length == 1) {
  scriptA += myParts[0] + '=' + apiParts[0] + ';';
} else {
var i,j;
for (i = 0; i < myParts.length - 1; i++) {
  if (i == 0) {
    scriptA += 'var v=[];var w=[];var o=[];for(v['+i+']=0;v['+i+']<'+apiParts[i]+'.length;v['+i+']++){';
    scriptA += 'w['+i+']='+apiParts[i]+'[v['+i+']];';
    scriptA += 'if(typeof '+myParts[i]+'[v['+i+']]=="undefined"){'+myParts[i]+'[v['+i+']]={};}';
    scriptA += 'o['+i+']='+myParts[i]+'[v['+i+']];';
  }else {
    scriptA += 'for(v['+i+']=0;v['+i+']<v['+(i-1)+']'+apiParts[i]+'.length;v['+i+']++){';
    scriptA += 'w['+i+']=w['+(i-1)+']'+apiParts[i]+'[v['+i+']];';
    scriptA += 'if(typeof o['+(i-1)+']'+myParts[i]+'[v['+i+']]=="undefined"){o['+(i-1)+']'+myParts[i]+'[v['+i+']]={};}';
    scriptA += 'o['+i+']=o['+(i-1)+']'+myParts[i]+'[v['+i+']];';
  }
  scriptB += '}';
}
scriptA += 'if(typeof o['+(i-1)+']'+myParts[i]+'=="undefined"){o['+(i-1)+']'+myParts[i]+'={};}';
scriptA += 'o['+(i-1)+']'+myParts[i]+'=w['+(i-1)+']'+apiParts[i]+';';
}
var script = document.createElement("script");
script.type = "text/javascript";
script.text  = scriptA + scriptB;
document.body.appendChild(script);
alert(outputModel.items[1].sku);