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

เปรียบเทียบสองอาร์เรย์และหาค่าที่ไม่ตรงกันใน JavaScript

เรามีสองอาร์เรย์ของลิเทอรัลที่มีค่าร่วมกันบ้าง หน้าที่ของเราคือเขียนฟังก์ชันที่คืนค่าอาร์เรย์พร้อมองค์ประกอบทั้งหมดจากทั้งสองอาร์เรย์ที่ไม่ใช่ค่าร่วม

ตัวอย่างเช่น:

// หากสองอาร์เรย์คือ:
const first = ['cat', 'dog', 'mouse'];
const second = ['zebra', 'tiger', 'dog', 'mouse'];
// ผลลัพธ์ควรเป็น:
const output = ['cat', 'zebra', 'tiger']
// เพราะสามตัวนี้คือองค์ประกอบเดียวที่ไม่ร่วมกันในทั้งสองอาร์เรย์

มาเขียนโค้ดสำหรับนี้ เราจะ spread สองอาร์เรย์และ filter อาร์เรย์ที่ได้เพื่อให้ได้อาร์เรย์ที่ไม่มีค่าร่วมกันแบบนี้:

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

const first = ['cat', 'dog', 'mouse'];
const second = ['zebra', 'tiger', 'dog', 'mouse'];

const removeCommon = (first, second) => {
  const spreaded = [...first, ...second];
  return spreaded.filter(el => {
    return !(first.includes(el) && second.includes(el));
  })
};

console.log(removeCommon(first, second));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็นดังนี้:

['cat', 'zebra', 'tiger']