Back to js-datatype-foundation
04-sabzi-mandi.js
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