export function zipObjects()

in modules/manifold/src/utils/utils.js [342:359]


export function zipObjects(arrays, joinField, rename) {
  if (!arrays.length) {
    return [];
  }
  return arrays[0].map((sampleObj, i) => {
    const renamedObjs = arrays.map(arr => arr[i]).map((obj, j) => {
      // make sure joinField is matched for each object in each sub-array
      assert(sampleObj[joinField] === obj[joinField]);
      return Object.keys(obj).reduce((acc, key) => {
        const renamedKey = rename[j][key] || key;
        acc[renamedKey] = obj[key];
        return acc;
      }, {});
    });
    // todo: assert there are no duplicated keys
    return Object.assign.apply(null, renamedObjs);
  });
}