ניסוי #33: איתור מוצרי אפל עם תכנות פונקציונלי JS Functional Programming

מטרת הניסוי

לאתר מוצרים המיוצרים על-ידי ״אפל״,
מתוך רשימת מוצרים
באמצעות תכנות פונקציונלי.

3502028224_d19df4870e_z

הציוד הדרוש

עורך טקסט, דפדפן נתמך.

רקע

מהו תכנות פונקציונלי?

תכנות בו הפונקציות הן הכלי העיקרי לכתיבת הקוד.
במקום לכתוב את הקוד בצורת סיפור,
אנו משתמשים בפונקציות על-מנת לחשב ולהחזיר ערכים.

מה ההבדל בין תכנות אימפרטיבי לתכנות פונקציונלי?

בשונה מהתכנות האימפרטיבי, המורכב מרצף של פקודות אשר מבוצעות אחת-אחר-השנייה, תכנות פונקציונלי מורכב בעיקר מחישובים רקורסיביים של פונקציות, אשר נעזרות אחת-בשנייה על-מנת להפיק לבסוף פלט מסויים.

לדוגמה, אם בתכנות אימפרטיבי היינו סוכמים את איברי המערך בצורה כזו:

var nums = [1,3,7],
  sum = 0;

for (var i=0, l=nums.length; i<l; i++){
  sum += nums[i];
}

console.log(sum); // 11

הרי שבתכנות פונקציונלי היינו מבצעים זאת כך:

var nums = [1,3,7],
  sum = 0;

sum = nums.reduce(
  function(currentSum, num){
     return currentSum + num;
  }
);

console.log(sum); // 11

מהלך הניסוי


יצירת מערך ״מוצרים״

var products = [
 {
    manufactory: "Apple",
    device: "iPhone"
  },
  {
    manufactory: "Google",
    device: "Nexus"
  },
  {
    manufactory: "Apple",
    device: "iPhone"
  },
];


הצגת מוצרי אפל

var appleProducts = products.filter(
  function(product){
    return (product.manufactory === "Apple")
  }
);

console.log(appleProducts); // [{"manufactory":"Apple","device":"iPhone"},{"manufactory":"Apple","device":"iPhone"}]

תוצאות הניסוי: