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

การใช้ฟังก์ชันกำหนดเองกับแต่ละคู่สมาชิกของสองอาร์เรย์ใน JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน 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) สำหรับความปลอดภัย