ปัญหา
เราต้องเขียนฟังก์ชัน JavaScript ที่รับฟังก์ชัน callback (รับ 2 อาร์กิวเมนต์ คืนค่า) เป็นอาร์กิวเมนต์แรก และสองอาร์เรย์ความยาวเท่ากันเป็นอาร์กิวเมนต์ที่ 2 และ 3 ฟังก์ชันควรสร้างและคืนค่าอาร์เรย์ใหม่ ที่แต่ละสมาชิกคือผลลัพธ์ของ callback กับคู่สมาชิกที่ตรงกัน
ตัวอย่าง
โค้ดตัวอย่างด้านล่าง:
const arr1 = [1, 2, 3, 4];
const arr2 = [5, 6, 7, 8];
const add = (a, b) => a + b;
const applyFunction = (callback = () => {}, arr1 = [], arr2 = []) => {
const res = [];
arr1.forEach((num1, ind) => {
const num2 = arr2[ind];
res.push(callback(num1, num2));
});
return res;
};
console.log(applyFunction(add, arr1, arr2));
ผลลัพธ์
[6, 8, 10, 12]
คำอธิบายเพิ่มเติม
นี่คือการ implement zipWith หรือ map แบบสองอาร์เรย์ (zip + map) โค้ดสมมติความยาวเท่ากัน ควรเพิ่มการตรวจสอบหรือใช้ Math.min(length) สำหรับความปลอดภัย