สมมติว่าเรามีสองอาร์เรย์ หนึ่งมีคำตอบที่ถูกต้องของคำถามบางข้อ และอีกอันมีคำตอบที่ผู้สมัครทำ แต่ว่าโดนสับสนลำดับ จนไม่ตรงลำดับเดิม แต่มั่นใจได้ว่าไม่มีคำถามสองข้อที่มีคำตอบเหมือนกัน
หน้าที่ตอนนี้คือเขียนฟังก์ชันที่รับสองอาร์เรย์นี้ ตรวจสอบหาค่าร่วมกัน หาค่าร่วมทั้งหมด และคำนวณเปอร์เซ็นต์คะแนนของผู้สมัครจากจำนวนคำตอบที่ตรง
มาเขียนโค้ดสำหรับฟังก์ชันนี้กัน:
ตัวอย่างโค้ด
const correct = ['India', 'Japan', 56, 'Mount Everest', 'Nile', 'Neil Armstrong', 'Inception', 'Lionel Messi', 'Joe Biden', 'Vatican City'];
const answered = ['Nile', 'Neil Armstrong', 'Joe Biden', 'Mount Everest', 'Vatican City', 'Inception', 'Japan', 56, 'China', 'Cristiano Ronaldo'];
const findPercentage = (first, second) => {
const count = first.reduce((acc, val) => {
if (second.includes(val)) {
return ++acc;
}
return acc;
}, 0);
return (count / first.length) * 100;
};
console.log(`Candidate have scored ${findPercentage(correct, answered)}%`);
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้:
Candidate have scored 80%