satyacode
Background
JavaScript
1/**
2 * 🥬 Sabzi Mandi Shopping Cart - Array Basics
3 *
4 * Amma sabzi mandi gayi hain. Unka shopping cart (array) hai.
5 * Items add karna, remove karna, check karna — sab array basic methods se.
6 * Tu Amma ka digital thela bana!
7 *
8 * Methods to explore: .push(), .pop(), .unshift(), .indexOf(),
9 *   .includes(), .length, .concat(), Array.isArray()
10 *
11 * Functions:
12 *
13 *   1. addToCart(cart, item)
14 *      - .push() se item ko cart ke end mein add karo
15 *      - Return: new cart length (push returns this automatically)
16 *      - Agar cart Array nahi hai (Array.isArray use karo), return -1
17 *      - Agar item empty string hai ya string nahi hai, return cart.length without adding
18 *      - Example: addToCart(["tamatar", "pyaaz"], "mirchi") => 3
19 *
20 *   2. addUrgentItem(cart, item)
21 *      - .unshift() se item ko cart ke BEGINNING mein add karo (pehle khareedna hai!)
22 *      - Return: updated cart array
23 *      - Agar cart not array, return []
24 *      - Agar item valid string nahi hai, return cart unchanged
25 *      - Example: addUrgentItem(["pyaaz", "mirchi"], "dhaniya") => ["dhaniya", "pyaaz", "mirchi"]
26 *
27 *   3. removeLastItem(cart)
28 *      - .pop() se last sabzi remove karo
29 *      - Return: the removed item
30 *      - Agar cart not array ya empty hai, return undefined
31 *      - Example: removeLastItem(["tamatar", "pyaaz", "mirchi"]) => "mirchi"
32 *
33 *   4. isInCart(cart, item)
34 *      - .includes() se check karo ki item cart mein hai ya nahi
35 *      - Agar cart not array, return false
36 *      - Example: isInCart(["tamatar", "pyaaz"], "pyaaz") => true
37 *      - Example: isInCart(["tamatar", "pyaaz"], "mirchi") => false
38 *
39 *   5. mergeCarts(cart1, cart2)
40 *      - .concat() se do carts ko combine karo
41 *      - Return: new merged array
42 *      - Agar koi bhi array nahi hai, usse empty array [] maan lo
43 *      - Example: mergeCarts(["tamatar"], ["mirchi", "adrak"]) => ["tamatar", "mirchi", "adrak"]
44 *
45 * @example
46 *   addToCart(["tamatar", "pyaaz"], "mirchi")        // => 3
47 *   addUrgentItem(["pyaaz"], "dhaniya")              // => ["dhaniya", "pyaaz"]
48 *   removeLastItem(["tamatar", "pyaaz", "mirchi"])   // => "mirchi"
49 */
50export function addToCart(cart, item) {
51  if(!Array.isArray(cart)){
52    return -1
53  }
54  if(typeof item !== "string" || item.length == 0 ){
55    return cart.length
56  }
57
58  return cart.push(item)
59}
60
61export function addUrgentItem(cart, item) {
62  if(!Array.isArray(cart)){
63    return []
64  }
65
66  if(typeof item !== "string" || item.length == 0){
67    return cart
68  }
69
70  cart.unshift(item)
71  return cart
72}
73
74export function removeLastItem(cart) {
75  if(!Array.isArray(cart) || cart.length == 0){
76    return undefined
77  }
78  const lastItem = cart.pop()
79
80  return lastItem
81}
82
83export function isInCart(cart, item) {
84  if(!Array.isArray(cart)){
85    return false
86  }
87
88  return cart.includes(item)
89}
90
91export function mergeCarts(cart1, cart2) {
92  
93  if(!Array.isArray(cart1)){
94    cart1 = []
95  }
96
97  if(!Array.isArray(cart2)){
98    cart2 = []
99  }
100
101  return cart1.concat(cart2)
102}
103