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

JavaScript array.includes ภายในอาร์เรย์ที่ซ้อนกันส่งกลับค่าเท็จโดยที่ชื่อที่ค้นหาอยู่ในอาร์เรย์


เป็นปัญหาที่รู้จักกันดีว่าเมื่อเราใช้ include() ภายในอาร์เรย์ที่ซ้อนกัน เช่น multidimensionalarray มันไม่ทำงาน มีฟังก์ชัน Array.prototype.flat() ที่ทำให้อาร์เรย์แบนแล้วค้นหาผ่าน แต่เบราว์เซอร์ไม่รองรับ ดีมากเลย

ดังนั้นงานของเราคือสร้างฟังก์ชัน includeMultiDimension() ที่รับอาร์เรย์และสตริงและส่งคืนบูลีนตามการมีอยู่/ไม่มีของสตริงนั้นในอาร์เรย์

มีวิธีแก้ไขปัญหานี้มากมาย ส่วนใหญ่รวมถึงการเรียกซ้ำ, ฟังก์ชันอาร์เรย์หนัก, การวนซ้ำ และอีกมากมาย

สิ่งที่เราจะพูดถึงในที่นี้เป็นวิธีที่ง่ายที่สุดในการตรวจสอบการมีอยู่/ไม่มีสตริงในอาร์เรย์ที่ซ้อนกัน

รหัสสำหรับสิ่งนี้คือ −

ตัวอย่าง

const names = ['Ram', 'Shyam', 'Laxman', [
   'Jay', 'Jessica', [
      'Vikram'
   ]
]];
const includesMultiDimension = (arr, str) =>
JSON.stringify(arr).includes(str);
console.log(includesMultiDimension(names, 'Vikram'));

โซลูชันหนึ่งบรรทัดนี้รวมถึงการแปลงอาร์เรย์เป็นสตริง JSON เพื่อให้เราสามารถรวมเข้ากับอาร์เรย์ได้

ผลลัพธ์

เอาต์พุตคอนโซลจะเป็น −

True