เรามีอาร์เรย์ของ Number literals แบบนี้ -
จำนวน const =[10,6200,20,20,350,900,26,78,888,10000,78,15000,200,1280,2000,450];
เราควรเขียนฟังก์ชันที่ใช้อาร์เรย์ของตัวเลขและตัวเลขระหว่าง [0,100] โดยพื้นฐานแล้วตัวเลขนี้แสดงถึงเปอร์เซ็นต์ที่แน่นอน ให้เราแทนตัวเลขนี้ด้วย x ก่อน
ตอนนี้ เราต้องคืนค่าอาร์เรย์ย่อยขององค์ประกอบ n ตัวแรกของอาร์เรย์ดั้งเดิมที่รวมกันได้เท่ากับหรือน้อยกว่า x % ของผลรวมทั้งหมดขององค์ประกอบอาร์เรย์ทั้งหมด
ยกตัวอย่างง่ายๆ −
const numbers =[12, 10, 6, 8, 4, 2, 8];
สำหรับผลรวมของอาร์เรย์นี้คือ 50 และตอนนี้หากเราระบุ 25 เป็นอาร์กิวเมนต์ที่สอง (ค่าสำหรับ x) เราก็จะต้องคืนค่า n องค์ประกอบแรกที่รวมกันได้เท่ากับหรือน้อยกว่า 25% ของ 50 ซึ่งจริงๆ แล้ว 12.5.
ดังนั้น ในกรณีนี้ ควรส่งคืนอาร์เรย์ที่มีเพียงองค์ประกอบแรกเท่านั้น เนื่องจากการเพิ่มองค์ประกอบที่สอง (10) ถึง 12 จะเกินค่าเกณฑ์ (12.5)
มาเขียนโค้ดสำหรับสิ่งนี้กัน ในตอนแรก เราเพียงแค่ลดอาร์เรย์ให้เหลือผลรวม จากนั้นใน for loop เราสร้างอาร์เรย์ที่ตรงกับเกณฑ์ที่กล่าวถึงข้างต้น -
ตัวอย่าง
const numbers =[10,6200,20,20,350,900,26,78,888,10000,78,15000,200,1280,2000,450];const findPercent =(arr, เปอร์เซ็นต์) => { ผลรวม const =arr. ลด ((acc, val) => acc+val); ส่วน const =[]; ให้ curr =0; สำหรับ(ให้ i =0; iผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
<ก่อนหน้า>[ 10, 6200, 20, 20, 350, 900, 26, 78, 888][ 10 ][ 10, 6200, 20, 20, 350, 900, 26, 78, 888, 10000, 78][ 10 , 6200, 20, 20, 350, 900, 26, 78, 888, 10000, 78, 15000, 200, 1280]