JavaScript: Create an array of elements, grouped based on the position in the original arrays

JavaScript fundamental (ES6 Syntax): Exercise-102 with Solution

Write a JavaScript program to create an array of elements, grouped based on the position in the original array.

• Use Math.max(), Function.prototype.apply() to get the longest array in the arguments.
• Create an array with that length as return value and use Array.from() with a mapping function to create an array of grouped elements.
• If lengths of the argument arrays vary, undefined is used where no value could be found.

Sample Solution:

JavaScript Code:

``````//#Source https://bit.ly/2neWfJ2
const zip = (...arrays) => {
const maxLength = Math.max(...arrays.map(x => x.length));
return Array.from({ length: maxLength }).map((_, i) => {
return Array.from({ length: arrays.length }, (_, k) => arrays[k][i]);
});
};

console.log(zip(['a', 'b'], [1, 2], [true, false]));
console.log(zip(['a'], [1, 2], [true, false]));
```
```

Sample Output:

```[["a",1,true],["b",2,false]]
[["a",1,true],[null,2,false]]
```

Flowchart:

Live Demo:

See the Pen javascript-basic-exercise-102-1 by w3resource (@w3resource) on CodePen.

Improve this sample solution and post your code through Disqus

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿