zipWith
Creates an array of elements, grouped based on the position in the original arrays and using a function to specify how grouped values should be combined.
- Check if the last argument provided is a function.
 - Use 
Math.max()to get the longest array in the arguments. - Use 
Array.from()to create an array with appropriate length and a mapping function to create array of grouped elements. - If lengths of the argument arrays vary, 
undefinedis used where no value could be found. - The function is invoked with the elements of each group.