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

จับคู่ระหว่าง 2 อาร์เรย์ใน JavaScript


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

const data = [{    name: 'Kamlesh Kapasi',    uid: 123 }, {       name: 'Mahesh Babu',       uid: 129 }, {       name: 'Akshay Kapoor',       uid: 223 }, {       name: 'Vikas Gupta',       uid: 423 }, {       name: 'Mohit Dalal',       uid: 133 }, {       name: 'Rajkumar Hirani',       uid: 233 }, {       name: 'Joy',       uid: 127 }]; const names = ['Joy', 'Rajkumar Hirani', 'Akshay Kapoor', 'Mahesh Babu', 'Mohit Dalal', 'Kamlesh Kapasi', 'Vikas Gupta']

หน้าที่ของเราคือเขียนฟังก์ชันที่วนลูปผ่าน names array และสร้างอาร์เรย์ตัวเลขที่มี uid ของชื่อเฉพาะในลำดับเดียวกับที่ปรากฏใน names array

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

ตัวอย่าง

const data = [{    name: 'Kamlesh Kapasi',    uid: 123 }, {       name: 'Mahesh Babu',       uid: 129 }, {       name: 'Akshay Kapoor',       uid: 223 }, {       name: 'Vikas Gupta',       uid: 423 }, {       name: 'Mohit Dalal',       uid: 133 }, {       name: 'Rajkumar Hirani',       uid: 233 }, {       name: 'Joy',       uid: 127 }]; const names = ['Joy', 'Rajkumar Hirani', 'Akshay Kapoor', 'Mahesh Babu', 'Mohit Dalal', 'Kamlesh Kapasi', 'Vikas Gupta'] const mapId = (arr, names) => {    return names.reduce((acc, val) => {       const index = arr.findIndex(el => el.name === val);       return acc.concat(arr[index].uid);    }, []); } console.log(mapId(data, names));

ผลลัพธ์

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

[    127, 233, 223,    129, 133, 123,    423 ]