Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

วิธีการประมวลผลอาร์เรย์ที่ซ้อนกันของ JavaScript และแสดงลำดับของตัวเลขตามระดับที่ซ้อนกัน?


สมมุติว่าเรามีอาร์เรย์ของตัวเลขแบบนี้ -

const arr =[23, 6, [2,[6,2,1,2], 2], 5, 2];

เราจำเป็นต้องเขียนโปรแกรมที่ควรพิมพ์ตัวเลข (องค์ประกอบ) ของอาร์เรย์นี้ไปที่หน้าจอ

ลำดับการพิมพ์ของตัวเลขควรเป็นไปตามระดับที่ซ้อนกัน ดังนั้นผลลัพธ์สำหรับอินพุตข้างต้นควรมีลักษณะดังนี้ -

23
6
   2
      6
      2
      1
      2
   2
5
2

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf−8">
   <meta name="viewport" content="width=device−width">
   <title>PATTERN</title>
</head>
<body>
   <script>
      const arr = [23, 6, [2, [6, 2, 1, 2], 2], 5, 2];
      arr.reduce(function iter(level) {
         return function (node, item) {
            var pTag = document.createElement('p');
            pTag.style.marginLeft = level + 'px';
            node.appendChild(pTag);
            if (Array.isArray(item)) {
               item.reduce(iter(level || 50), pTag);
            } else {
               pTag.appendChild(document.createTextNode(item));
            }
            return node;
         };
      }(0), document.body);
   </script>
   <p></p>
</body>
</html>

และผลลัพธ์บนหน้าจอจะเป็น −

วิธีการประมวลผลอาร์เรย์ที่ซ้อนกันของ JavaScript และแสดงลำดับของตัวเลขตามระดับที่ซ้อนกัน?