「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 配列と関数を使用して JavaScript で初心者向けのショッピング カートを構築するためのステップバイステップ ガイド

配列と関数を使用して JavaScript で初心者向けのショッピング カートを構築するためのステップバイステップ ガイド

2024 年 11 月 7 日に公開
ブラウズ:897

Step-by-Step Guide to Building a Beginner-Friendly Shopping Cart in JavaScript Using Arrays and Functions

新しいプログラミング言語を学ぶ最良の方法は、できるだけ多くのプロジェクトを作成することです。学んだことに焦点を当てたミニプロジェクトを構築すると、初心者としてよりスムーズな経験ができるでしょう。
目標は、「チュートリアル地獄」(スキルを示すための具体的なプロジェクトがないのに、いくつかのチュートリアル ビデオを見続ける恐ろしい場所)を回避し、大規模なプロジェクトに取り組むために必要な自信を築くことです。
この記事では、JavaScript の基本概念を使用して、初心者向けにショッピング カート システムを作成する方法を説明します。

前提条件

このプロジェクトに挑戦するには、以下に関する深い知識が必要です:

  • 関数
  • メソッド
  • 配列

何を構築するか?

ショッピング カートには、ユーザーが次のことができるシステムが組み込まれます:

  • 商品をカートに追加
  • カートから商品を削除
  • カートの内容を見る
  • カート内の商品の合計金額を計算します

ステップ 1: データのセットアップ

まず、項目のデータを保持する配列をいくつか作成する必要があります。特に必要な配列は次のとおりです:

  • itemNames: 各項目の名前を指定します。
  • itemPrices: 各アイテムにかかる価格が含まれます。
  • itemQuantities: 特定のアイテムがどれだけ入手可能であるかを示します。
  • itemInStock: true または false を使用してアイテムの在庫があるかどうかを判断します。

const itemNames = ["Laptop", "Phone"];
const itemPrices = [1000, 500];
const itemQuantities = [1, 2];
const itemInStock = [true, true];


ステップ 2: 関数を備えたショッピング カートを構築する

カートのロジックを含むメインのショッピング カート関数を作成します。クロージャーを使用して、カートが非公開であり、特定の関数のみがカートとやり取りできるようにします。


const ShoppingCart = () => {
  const cart = []; // The cart is a private array

  // Add an item to the cart
  const addItemToCart = (itemIndex) => {
    if (itemInStock[itemIndex]) {
      cart.push(itemIndex);
      console.log(`${itemNames[itemIndex]} added to the cart`);
    } else {
      console.log(`${itemNames[itemIndex]} is out of stock`);
    }
  };

  // Remove an item from the cart
  const removeItemFromCart = (itemIndex) => {
    const index = cart.indexOf(itemIndex);
    if (index > -1) {
      cart.splice(index, 1);
    }
  };

  // Get the names of items in the cart
  const getCartItems = () => {
    return cart.map(itemIndex => itemNames[itemIndex]);
  };

  // Calculate the total price of items in the cart
  const calculateTotal = () => {
    return cart.reduce((total, itemIndex) => {
      return total   itemPrices[itemIndex] * itemQuantities[itemIndex];
    }, 0);
  };

  return {
    addItemToCart,
    removeItemFromCart,
    getCartItems,
    calculateTotal
  };
};


コードを分解するには:

  • addItemToCart(itemIndex): インデックスに基づいてアイテムをカートに追加します (在庫がある場合のみ)。
  • RemoveItemFromCart(itemIndex): インデックスを使用してカートから商品を削除します。
  • getCartItems(): Map() を使用してインデックスを名前に変換し、カート内のアイテムの名前を返します。
  • CalculateTotal():reduce() メソッドを使用して、カート内の商品の価格と数量を乗算して合計価格を計算します。

ステップ 3: ショッピング カートのテスト

完成したプロジェクトは、必要に応じて動作することを確認するためにテストする必要があります。次についてテストします:

  • アイテムを追加しています

  • カートを見る

  • 合計金額を確認しています


const myCart = ShoppingCart();

// Add a Laptop (item 0)
myCart.addItemToCart(0);

// Add a Phone (item 1)
myCart.addItemToCart(1);

// View cart contents
console.log(myCart.getCartItems()); // Output: ['Laptop', 'Phone']

// Calculate the total price
console.log(myCart.calculateTotal()); // Output: 2000


コードを分解するには:

  • 次のように呼び出して、ショッピング カートのインスタンスを作成します。 const myCart = shoppingCart();.
  • itemNames 配列のインデックスを使用して、アイテムをカートに追加します。 myCart.addItemToCart(0);ラップトップおよび myCart.addItemTocart(1) の場合。電話用。
  • getCartItems() を使用してカート内の商品の名前を出力します
  • 最後に、calculateTotal() を使用して合計価格を計算します。

ステップ 4: カートから商品を削除する

優れたショッピング カート システムでは、ユーザーがカートから商品を削除できる必要があります。これを行うには、removeItemFromCart().

を呼び出します。

myCart.removeItemFromCart(1); // Remove the Phone

// View the updated cart
console.log(myCart.getCartItems()); // Output: ['Laptop']

// Recalculate the total price
console.log(myCart.calculateTotal()); // Output: 1000



ボーナス: ショッピング カート システムのクロージャについて理解する

クロージャを使用すると、カート配列をプライベートに保つことができ、ShoppingCart() 関数によって返される関数を介してのみアクセスできます。

  • カート配列はショッピングカート()内で定義されており、外部から直接アクセスすることはできません。ただし、addItemTocart()、removeItemFromCart()、getCartItems()、およびcalculateTotal()関数は同じスコープ内で定義されているため、cart.
  • と対話できます。
  • クロージャは、コード内のデータのプライバシーと構造を維持するのに役立つ JavaScript の強力な機能です。

結論

基本的な配列と関数を使用して、アイテムの追加、削除、合計の計算ができる完全に機能するショッピング カート システムを構築しました。このプロジェクトの素晴らしい点は、複雑なオブジェクトやクラスを必要とせずに、クロージャを使用して状態をカプセル化し、管理していることです。

最終コード


const itemNames = ["Laptop", "Phone"];
const itemPrices = [1000, 500];
const itemQuantities = [1, 2];
const itemInStock = [true, true];

const ShoppingCart = () => {
  const cart = [];

  const addItemToCart = (itemIndex) => {
    if (itemInStock[itemIndex]) {
      cart.push(itemIndex);
      console.log(`${itemNames[itemIndex]} added to the cart`);
    } else {
      console.log(`${itemNames[itemIndex]} is out of stock`);
    }
  };

  const removeItemFromCart = (itemIndex) => {
    const index = cart.indexOf(itemIndex);
    if (index > -1) {
      cart.splice(index, 1);
    }
  };

  const getCartItems = () => {
    return cart.map(itemIndex => itemNames[itemIndex]);
  };

  const calculateTotal = () => {
    return cart.reduce((total, itemIndex) => {
      return total   itemPrices[itemIndex] * itemQuantities[itemIndex];
    }, 0);
  };

  return {
    addItemToCart,
    removeItemFromCart,
    getCartItems,
    calculateTotal
  };
};

const myCart = ShoppingCart();
myCart.addItemToCart(0);
myCart.addItemToCart(1);
console.log(myCart.getCartItems());
console.log(myCart.calculateTotal());
myCart.removeItemFromCart(1);
console.log(myCart.getCartItems());
console.log(myCart.calculateTotal());


学習を楽しんでいただければ幸いです。さらに素晴らしいプロジェクトを構築できることを楽しみにしています!

リリースステートメント この記事は次の場所に転載されています: https://dev.to/omilonge/step-by-step-guide-to-building-a-beginner-friendly-shopping-cart-in-javascript-using-arrays-and-functions- 4c68? 1侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3