Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 7df546c

Browse files
authored
Create Flatten.md
1 parent b99b8fb commit 7df546c

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

‎FE75/Flatten.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
```js
2+
/**
3+
* Flattens a nested array into a single-level array.
4+
*
5+
* @param {Array} array - The array to flatten.
6+
* @returns {Array} - A new array with all sub-array elements flattened.
7+
*/
8+
function flatten(array) {
9+
// Validate input to ensure it's an array
10+
if (!Array.isArray(array)) {
11+
throw new TypeError('Expected an array');
12+
}
13+
14+
const result = []; // Create a new array to store the flattened elements
15+
16+
// Helper function to recursively flatten the array
17+
function recursiveFlatten(arr) {
18+
for (let i = 0; i < arr.length; i++) {
19+
const item = arr[i];
20+
if (Array.isArray(item)) {
21+
// If the item is an array, recurse into it
22+
recursiveFlatten(item);
23+
} else {
24+
// If it's not an array, push it to the result
25+
result.push(item);
26+
}
27+
}
28+
}
29+
30+
recursiveFlatten(array); // Start the recursive flattening
31+
return result; // Return the flattened array
32+
}
33+
34+
export default flatten;
35+
```
36+
### Explanation
37+
#### Validate Input:
38+
The function verifies that the input array is indeed an array using Array.isArray and throws an error if it's not.
39+
40+
#### Create a result Array:
41+
A new array (result) is created to store the flattened elements. This ensures that the original input array remains unchanged (pure function).
42+
43+
#### Recursive Helper Function:
44+
A recursive helper function, recursiveFlatten, is defined to iterate through the array:
45+
46+
* If an element is an array (Array.isArray(item)), the function recursively calls itself with the sub-array.
47+
* If the element is not an array, it is directly pushed into the result array.
48+
#### Return the Result:
49+
After the recursive flattening is complete, the result array is returned.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /