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

ค้นหาจากอาร์เรย์ของออบเจ็กต์ผ่านอาร์เรย์ของสตริงเพื่อได้อาร์เรย์ของออบเจ็กต์ใน JavaScript

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

const arr1 = [ '1956888670', '2109171907', '298845084' ];
const arr2 = [
  { KEY: '1262875245', VALUE: 'Vijay Kumar Verma' },
  { KEY: '1956888670', VALUE: 'Sivakesava Nallam' },
  { KEY: '2109171907', VALUE: 'udm analyst' },
  { KEY: '298845084', VALUE: 'Mukesh Nagora' },
  { KEY: '2007285563', VALUE: 'Yang Liu' },
  { KEY: '1976156380', VALUE: 'Imtiaz Zafar' },
];

เราต้องเขียนฟังก์ชัน JavaScript ที่รับสองอาร์เรย์ดังกล่าว ฟังก์ชันของเราควรคืนค่าอาร์เรย์ที่สองที่ถูกกรองแล้วซึ่งมีเฉพาะออบเจ็กต์ที่คุณสมบัติ "KEY" ของมันถูกแสดงในอาร์เรย์แรกเป็นสตริง

ตัวอย่าง

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

const arr1 = [ '1956888670', '2109171907', '298845084' ];
const arr2 = [
  { KEY: '1262875245', VALUE: 'Vijay Kumar Verma' },
  { KEY: '1956888670', VALUE: 'Sivakesava Nallam' },
  { KEY: '2109171907', VALUE: 'udm analyst' },
  { KEY: '298845084', VALUE: 'Mukesh Nagora' },
  { KEY: '2007285563', VALUE: 'Yang Liu' },
  { KEY: '1976156380', VALUE: 'Imtiaz Zafar' },
];

const filterByKey = (arr1 = [], arr2 = []) => {
  let res = [];
  res = arr2.filter(el => {
    const { KEY } = el;
    const index = arr1.indexOf(KEY);
    return index !== -1;
  });
  return res;
};

console.log(filterByKey(arr1, arr2));

ผลลัพธ์

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

[
  { KEY: '1956888670', VALUE: 'Sivakesava Nallam' },
  { KEY: '2109171907', VALUE: 'udm analyst' },
  { KEY: '298845084', VALUE: 'Mukesh Nagora' }
]