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

กรองอ็อบเจกต์ตามอาร์เรย์ใน JavaScript

สมมติว่าเรามีอาร์เรย์และอ็อบเจกต์ดังนี้:

const arr = ['a', 'd', 'f'];
const obj = {
  "a": 5,
  "b": 8,
  "c": 4,
  "d": 1,
  "e": 9,
  "f": 2,
  "g": 7
};

เราต้องเขียนฟังก์ชันที่รับอ็อบเจกต์และอาร์เรย์ และกรอง property ของอ็อบเจกต์ที่ไม่ใช่สมาชิกของอาร์เรย์ออกไป ดังนั้นเอาต์พุทควรมีแค่ 3 property คือ "a", "d" และ "f"

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

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

const arr = ['a', 'd', 'f'];
const obj = {
  "a": 5,
  "b": 8,
  "c": 4,
  "d": 1,
  "e": 9,
  "f": 2,
  "g": 7
};

const filterObject = (obj, arr) => {
  Object.keys(obj).forEach((key) => {
    if (!arr.includes(key)) {
      delete obj[key];
    }
  });
};

filterObject(obj, arr);
console.log(obj);

ผลลัพธ์

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

{ a: 5, d: 1, f: 2 }