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

การนับจำนวนองค์ประกอบในอาร์เรย์อย่างละเอียดโดยใช้ JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์องค์ประกอบที่ซ้อนกันและส่งคืนจำนวนองค์ประกอบที่มีอยู่ในอาร์เรย์

ป้อนข้อมูล

const arr = [1, 2, [3, 4, [5]]];

ผลผลิต

const output = 7;

เนื่องจากองค์ประกอบที่ระดับ 1 คือ 2 องค์ประกอบที่ระดับ 2 คือ 2 และองค์ประกอบที่ระดับ 3 คือ 1 ดังนั้นการนับลึกคือ 7

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const arr = [1, 2, [3, 4, [5]]];
const deepCount = (arr = []) => {
   return arr
   .reduce((acc, val) => {
      return acc + (Array.isArray(val) ? deepCount(val) : 0);
   }, arr.length);
};
console.log(deepCount(arr));

คำอธิบายโค้ด

เราใช้เมธอด Array.prototype.reduce() เพื่อวนซ้ำบนอาร์เรย์ และหากเราพบอาร์เรย์ที่ซ้อนกันในการวนซ้ำ เราจะเรียกฟังก์ชันของเราซ้ำๆ

ผลลัพธ์

7