สมมติว่า เรามีอาร์เรย์สองอาร์เรย์ ตัวหนึ่งเป็นตัวอักษรสตริงและอีกตัวหนึ่งของอ็อบเจกต์
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'] งานของเราคือการเขียนฟังก์ชันที่วนซ้ำบนอาร์เรย์ชื่อและสร้างอาร์เรย์ของจำนวนที่มี uid ของชื่อเฉพาะในลำดับเดียวกับที่ปรากฏในอาร์เรย์ชื่อ
มาเขียนโค้ดสำหรับฟังก์ชันนี้กัน −
ตัวอย่าง
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 ]