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

ส่วนของอาร์เรย์ที่มี n องค์ประกอบต่างกันใน JavaScript


ปัญหา

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

ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −

const arr =[12, 15, 12, 15, 18];const num =2;

จากนั้นผลลัพธ์ควรเป็น −

คอนสตเอาท์ =7;

คำอธิบายผลลัพธ์

อาร์เรย์ย่อยประกอบด้วยองค์ประกอบที่แตกต่างกัน 2 อย่าง −

<ก่อน>[12,15], [15,12], [12,15], [15,18], [12,15,12], [15,12,15], [12,15,12, 15]

ตัวอย่าง

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

const arr =[12, 15, 12, 15, 18];const num =2;const differentSubarrays =(arr =[], num =1) => { const findDistinct =(นับ) => { const map ={}; ให้ ptr =0; ให้แตกต่าง =0; ให้ res =0; สำหรับ (ให้ถูกต้อง =0; ขวา  นับ){ map[arr[ptr]] -=1; if(map[arr[ptr]] ===0){ แตกต่าง -=1; }; ptr +=1; }; res +=ขวา - ptr + 1; }; ผลตอบแทน res; }; ส่งคืน findDistinct(num) - findDistinct(num - 1)};console.log(distinctSubarrays(arr, num));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

7