How to Convert an Array into a Complex Array JavaScript ?
Last Updated :
28 Aug, 2024
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)