Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

เปรียบเทียบสองอาร์เรย์ดูว่ามี element เหมือนกันกี่ตัวใน JavaScript

สมมติว่าเรามีสองอาร์เรย์ หนึ่งมีคำตอบที่ถูกต้องของคำถามบางข้อ และอีกอันมีคำตอบที่ผู้สมัครทำ แต่ว่าโดนสับสนลำดับ จนไม่ตรงลำดับเดิม แต่มั่นใจได้ว่าไม่มีคำถามสองข้อที่มีคำตอบเหมือนกัน

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

มาเขียนโค้ดสำหรับฟังก์ชันนี้กัน:

ตัวอย่างโค้ด

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%