# Create a Deep Flattening Tool - Create a Deep Flattening Tool

**URL:** <https://forum.freecodecamp.org/t/create-a-deep-flattening-tool-create-a-deep-flattening-tool/801495>\
**Category:** Curriculum Help\
**Tags:** javascript\
**Created:** [October 1, 2026, 2:28pm UTC](https://forum.freecodecamp.org/t/create-a-deep-flattening-tool-create-a-deep-flattening-tool/801495 "2026-10-01T14:28:55Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Richmond\_otache](https://avatars.discourse-cdn.com/v4/letter/r/13edae/32.png) [@Richmond\_otache](https://forum.freecodecamp.org/u/Richmond_otache)\
**Post date:** [October 1, 2026, 2:28pm UTC](https://forum.freecodecamp.org/t/create-a-deep-flattening-tool-create-a-deep-flattening-tool/801495/1 "2026-10-01T14:28:55Z")

</div>

### Tell us what’s happening:

How can I split this thing to get the result  
Because when I convert {} to a string it returns [object object]

### Your code so far

```js
function steamrollArray(array){
  let numbers = "1234567890"
  let newArr = []
  for(let name of array){
   if(!Array.isArray(name)){
   name = JSON.stringify(name)
   }
   newArr.push(name)
  }
  let arr = newArr.reduce((prev, next) => {
   return prev + next
  }, "").replaceAll(",","")
  let value = arr.split("")
  for(let i = 0; i < value.length; i++){
  if(numbers.includes(value[i])){
   value[i] = Number(value[i])
  }
  }
  return arr
  
}
console.log(steamrollArray([1, {}, [3, [[4]]]]))

```

### Your browser information:

User Agent is: `Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Mobile Safari/537.36`

### Challenge Information:

Create a Deep Flattening Tool - Create a Deep Flattening Tool

> **[freeCodeCamp.org](https://www.freecodecamp.org/learn/javascript-v9/lab-deep-flattening-tool/create-a-deep-flattening-tool)**
>
> Learn to Code for Free

GitHub Link: [freeCodeCamp/curriculum/challenges/english/blocks/lab-deep-flattening-tool/ab306dbdcc907c7ddfc30830.md at main · freeCodeCamp/freeCodeCamp · GitHub](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/blocks/lab-deep-flattening-tool/ab306dbdcc907c7ddfc30830.md)

---

<div class="post-metadata">

**Author:** ![dhess](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/dhess/32/406235_2.png) [@dhess](https://forum.freecodecamp.org/u/dhess)\
**Post date:** [October 1, 2026, 3:04pm UTC](https://forum.freecodecamp.org/t/create-a-deep-flattening-tool-create-a-deep-flattening-tool/801495/2 "2026-10-01T15:04:12Z")

</div>

Hi @Richmond_otache,

You might want to look into using recursion for this challenge. That way, when you loop over the nested array, you only need to check whether an item is an array — if it is, you call the function again — if it isn’t, you push the item into the final array that will be returned.

Happy coding
