DEV Community

DPC
DPC

Posted on

5 3 4 4 4

Daily JavaScript Challenge #JS-155: Flatten Deeply Nested Arrays

Daily JavaScript Challenge: Flatten Deeply Nested Arrays

Hey fellow developers! 👋 Welcome to today's JavaScript coding challenge. Let's keep those programming skills sharp!

The Challenge

Difficulty: Medium

Topic: Array Manipulation

Description

Write a function that takes a deeply nested array of integers and returns a completely flattened array. The nested arrays can have any depth.

Ready to Begin?

https://www.dpcdev.com/

  1. Fork this challenge
  2. Write your solution
  3. Test it against the provided test cases
  4. Share your approach in the comments below!

Want to Learn More?

Check out the documentation about this topic here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray

Join the Discussion!

  • How did you approach this problem?
  • Did you find any interesting edge cases?
  • What was your biggest learning from this challenge?

Let's learn together! Drop your thoughts and questions in the comments below. 👇


This is part of our Daily JavaScript Challenge series. Follow me for daily programming challenges and let's grow together! 🚀

javascript #programming #coding #dailycodingchallenge #webdev

Sentry blog image

Build, Ship, See It All: MCP Monitoring with Sentry

Built an MCP server? Now see everything it does. Sentry’s MCP Server Monitoring tracks every client, tool, and request so you can fix issues fast and build with confidence.

Read more

Top comments (1)

Collapse
 
maxart2501 profile image
Massimo Artizzu
const flatten = array => array.flat(Infinity);
Enter fullscreen mode Exit fullscreen mode

Jokes aside... The easiest one would be recursive:

const flatten = array => {
  const flattened = [];
  for (const item of array) {
    if (Array.isArray(item)) {
      for (const subitem of flatten(item)) {
        flattened.push(subitem);
      }
    } else flattened.push(item);
  }
  return flattened;
};
Enter fullscreen mode Exit fullscreen mode

Next step: instead of Array.isArray, use this:

const isIterable = item => !!item && Symbol.iterator in item;
Enter fullscreen mode Exit fullscreen mode

Some comments may only be visible to logged-in visitors. Sign in to view all comments.

Coherence image

Authenticated AI Chat, Just 15 Lines of Code

Multi-modal streaming chat (including charts) with your existing backend data. Choose from 10+ models from all leading providers. Total control and visibility.

Learn more

[Workshop] Building and Monitoring AI Agents and MCP servers

Building with AI is different. Sentry has built some tools to help. In this workshop, you’ll learn how to monitor your agents, debug your MCP servers and how to debug with Seer.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️