Open In App

How to Convert an Array into a Complex Array JavaScript ?

Last Updated : 28 Aug, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

Complex arrays can represent multiple dimensions or data with a structure. This article discusses two approaches to converting an array into a more complex array.

Using Multidimensional Arrays

The simplest approach is to create inner arrays within the main array. You can achieve this using array literals and assignments.

Example: Creating a multidimensional array from a simple array with subarrays of two elements each.

JavaScript
const simpleArray = [1, 2, 3, 4, 5, 6];
const multidimensionalArray = [
  [simpleArray[0], simpleArray[1]],  // First subarray
  [simpleArray[2], simpleArray[3]],  // Second subarray
  [simpleArray[4], simpleArray[5]]   // Third subarray 

console.log(multidimensionalArray); 

Output:

[ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ]

Time Complexity: O(n)

Space Complexity: O(n)

Using Array.from()

This approach provides a versatile approach to building multidimensional arrays. It can be used in combination with a mapping function to change the initial array.

Example: Creating a multidimensional array from a simple array by splitting into subarrays of two elements each using `Array.from()` and indices.

JavaScript
const simpleArray = [1, 2, 3, 4, 5, 6];

const multidimensionalArray = 
Array.from({ length: Math.ceil(simpleArray.length / 2) }, (_, i)
   => [
  simpleArray[i * 2],
  simpleArray[i * 2 + 1] || null 
]);

console.log(multidimensionalArray); 

Output
[ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ]

Time Complexity: O(n)

Space Complexity: O(n)

Using the reduce() Method

Another efficient approach to converting an array into a more complex multidimensional array is by using the reduce() method. This method allows for a functional programming style, where you accumulate results based on the elements of the array.

Example: Implementation of a program to create a multidimensional array from a simple array with subarrays of two elements each using the reduce() method.

JavaScript
function toMultidimensionalArray(arr) {
    return arr.reduce((acc, curr, index) => {
        if (index % 2 === 0) {
            acc.push([curr]);
        } else {
            acc[acc.length - 1].push(curr);
        }
        return acc;
    }, []);
}


let arr = [1, 2, 3, 4, 5, 6];
console.log(toMultidimensionalArray(arr));

arr = [7, 8, 9, 10, 11, 12];
console.log(toMultidimensionalArray(arr));

Output
[ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ]
[ [ 7, 8 ], [ 9, 10 ], [ 11, 12 ] ]

Using the map() Method with slice() Method

This approach utilizes the map() method in combination with slice() to convert a simple array into a complex multidimensional array. The map() function iterates over the array, while slice() extracts portions of the array to create subarrays.

Example: Converting a simple array into a multidimensional array with subarrays of two elements each using the map() and slice() methods.

JavaScript
const simpleArray = [1, 2, 3, 4, 5, 6];
const subArraySize = 2;

const multidimensionalArray = Array(Math.ceil(simpleArray.length / subArraySize))
  .fill()
  .map((_, index) => simpleArray.slice(index * subArraySize, (index + 1) * subArraySize));

console.log(multidimensionalArray);
// Contributed by Nikunj Sonigara

Output
[ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ]

Time Complexity: O(n)

Space Complexity: O(n)


Next Article

Similar Reads