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

กรองอาร์เรย์ด้วยอีกอาร์เรย์หนึ่งใน JavaScript


เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์สองอาร์เรย์ของค่าคงที่ ฟังก์ชันควรคืนค่าอาร์เรย์แรกที่กรองแล้ว โดยเก็บเฉพาะองค์ประกอบที่มีอยู่ในอาร์เรย์แรกแต่ไม่อยู่ในอาร์เรย์ที่สอง

เราจะใช้เมธอด Array.prototype.filter() และตรวจสอบองค์ประกอบในอาร์เรย์ที่สองด้วย Array.prototype.includes()

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

โค้ดสำหรับการทำงานนี้จะเป็นดังนี้

const arr1 = [1,2,3,4,5]; const arr2 = [1,3,5]; 
const filterUnwanted = (arr1 = [], arr2 = []) => { 
  let filtered = []; 
  filtered = arr1.filter(el => { 
    const index = arr2.indexOf(el); 
    // index -1 หมายถึงองค์ประกอบไม่อยู่ในอาร์เรย์ที่สอง 
    return index === -1; 
  }); 
  return filtered; 
}; 
console.log(filterUnwanted(arr1, arr2));

ผลลัพธ์

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

[2, 4]