Lab guideFullStack

FullStack Sunday April

Last updated 6 December 2023

FullStack Sunday April

Scratchpad #1, 2, 3, 4

// let score = 0;
// score = score + 10;
// score += 5;
// console.log(score);

// let age = 12;

// if (age >= 18) {
// 	console.log('Hello, you can enter');
// }

let num = 122;

if (num % 2 === 0) {
    console.log('Number is even');
}

// // // // // let isLoggedIn = true;

// // // // // if (isLoggedIn === true) {
// // // // // 	console.log('Welcome');
// // // // // }

// // // // let age = 80;

// // // // if (age >= 65) {
// // // // 	console.log('Drinks are free');
// // // // } else if (age >= 21) {
// // // // 	console.log('You can enter and you can drink');
// // // // } else if (age >= 18) {
// // // // 	console.log('You can enter but you cannot drink');
// // // // } else {
// // // // 	console.log('You are not allowed to enter');
// // // // }

// // // let password = 'hello world@123';

// // // if (password.length >= 8) {
// // // 	if (password.search(' ') === -1) {
// // // 		console.log('Valid password');
// // // 	} else {
// // // 		console.log('Password cannot contain spaces');
// // // 	}
// // // } else {
// // // 	console.log('Invalid password');
// // // }

// // // let isLoggedIn = 'jane';

// // // if (isLoggedIn) {
// // // 	console.log('Welcome to your dashboard');
// // // } else {
// // // 	console.log('Please login to view the content');
// // // }

// // // let age = 26;

// // // if (age >= 18 && age < 21) {
// // // 	console.log('You can enter but you cannot drink');
// // // } else if (age >= 21 && age < 65) {
// // // 	console.log('You can enter and you can drink');
// // // } else if (age >= 65) {
// // // 	console.log('Drinks are free');
// // // } else {
// // // 	console.log('You are not allowed to enter');
// // // }

// // // let day = 5;

// // // switch (day) {
// // // 	case 1:
// // // 		console.log('Mon');
// // // 		break;
// // // 	case 2:
// // // 		console.log('Tue');
// // // 		break;
// // // 	case 3:
// // // 		console.log('Wed');
// // // 		break;
// // // 	case 4:
// // // 		console.log('Thu');
// // // 		break;
// // // 	default:
// // // 		console.log('Invalid day code');
// // // }

// // // if (day === 1) {
// // // 	console.log('Mon');
// // // } else if (day === 2) {
// // // 	console.log('Tue');
// // // } else if (day === 3) {
// // // 	console.log('Wed');
// // // } else {
// // // 	console.log('Invalid day code');
// // // }

// // let currentStatus = 'online';

// // let color =
// // 	currentStatus === 'online'
// // 		? 'green'
// // 		: currentStatus === 'offline'
// // 		? 'red'
// // 		: 'yellow';

// // // let color = null;

// // // if (currentStatus === 'online') {
// // // 	color = 'green';
// // // } else if (currentStatus === 'offline') {
// // // 	color = 'red';
// // // } else {
// // // 	color = 'yellow';
// // // }

// // console.log(color);

// // // currentStatus === 'online'
// // // 	? console.log('green')
// // // 	: currentStatus === 'offline'
// // // 	? console.log('red')
// // // 	: console.log('yellow');

// // // if (currentStatus === 'online') {
// // // 	console.log('green');
// // // } else if (currentStatus === 'offline') {
// // // 	console.log('red');
// // // } else {
// // // 	console.log('yellow');
// // // }

// const movies = [
//   'Inception',
//   'Exorcist',
//   'Shutter Island',
//   'Ben Hurr',
//   'The Taxi Driver',
//   "Schindler's List"
// ]

// const product1 = [
// 	1,
// 	'iPhone 15',
// 	'Apple',
// 	'Some description...',
// 	200,
// 	100000,
// 	true,
// ];

// const data = 'brand';

// const product2 = {
// 	name: 'iPhone 15',
// 	brand: 'Apple',
// 	description: 'Some description...',
// 	price: 100000,
// 	indexNo: 1,
// 	inStock: 200,
// 	discounted: true,
// 	10: 'hello',
// 	'some data': 'Test Information',
// };

// product2.brand = 'Apple computers';
// product2[10] = 'world';
// product2.something = [1, 2, 3, 4, 5];
// product2.indexNo++;
// delete product2[10];

// console.log(product2);

// // console.log(product2[data]);

// console.log(product2.discounted);
// console.log(product2[10]);
// console.log(product2['some data']);

const playlist = [
    {
        title: 'Some Name',
        artists: ['Artist #1', 'Artist #2'],
        album: 'Something',
        trackLength: 2.42,
        description: '...',
    },
    {
        title: 'Some Name',
        artists: ['Artist #1', 'Artist #2'],
        album: 'Something',
        trackLength: 2.42,
        description: '...',
    },
    {
        title: 'Some Name',
        artists: ['Artist #1', 'Artist #2'],
        album: 'Something',
        trackLength: 2.42,
        description: '...',
    },
    {
        title: 'Some Name',
        artists: ['Artist #1', 'Artist #2'],
        album: 'Something',
        trackLength: 2.42,
        description: '...',
    },
    {
        title: 'Some Name',
        artists: ['Artist #1', 'Artist #2'],
        album: 'Something',
        trackLength: 2.42,
        description: '...',
    },
];

// // // // for (let count = 0; count < 10; count++) {
// // // // 	console.log(count, 'Hello World');
// // // // }

// // // // for (let count = 0; count < 10; count += 2) {
// // // // 	console.log(count, 'Hello World');
// // // // }

// // // // for (let count = 10; count > 0; count++) {
// // // // 	console.log(count, 'Hello World');
// // // // }

// // // // const nums = [12, 34, 56, 34, 78, 54, 23, 12, 20, 1000];

// // // // for (let i = 0; i < nums.length; i++) {
// // // // 	console.log(nums[i]);
// // // // }

// // // // const movies = [
// // // // 	{ movieName: 'Inception', rating: 3.8 },
// // // // 	{ movieName: 'Avengers', rating: 3.4 },
// // // // 	{ movieName: 'Iron Man', rating: 2.9 },
// // // // ];

// // // // for (let i = 0; i < movies.length; i++) {
// // // // 	const movie = movies[i];
// // // // 	console.log(`${movie.movieName} has a rating of ${movie.rating}`);
// // // // }

// // // let message = 'hello world';

// // // // for (let i = 0; i < message.length; i++) {
// // // // 	console.log(message[i]);
// // // // }

// // // let reversedString = '';

// // // for (let i = message.length - 1; i >= 0; i--) {
// // // 	// console.log(message[i]);
// // // 	reversedString = reversedString + message[i];
// // // }
// // // console.log(reversedString);

// // // for (let i = 0; i < 5; i++) {
// // // 	console.log('OUTER LOOP', i);

// // // 	for (let j = 0; j < 5; j++) {
// // // 		console.log('	INNER LOOP', j);
// // // 	}
// // // }

// // // const gameBoard = [
// // // 	[4, 64, 8, 4],
// // // 	[128, 32, 4, 16],
// // // 	[16, 4, 4, 32],
// // // 	[2, 16, 16, 2],
// // // ];

// // // for (let i = 0; i < gameBoard.length; i++) {
// // // 	console.log(gameBoard[i]);
// // // 	for (let j = 0; j < gameBoard[i].length; j++) {
// // // 		console.log(gameBoard[i][j]);
// // // 	}
// // // }

// // for (let i = 0; i < 10; i++) {
// // 	console.log(i);
// // }

// // let j = 0;
// // while (j < 10) {
// // 	console.log(j);
// // 	j++;
// // }

// // const target = Math.floor(Math.random() * 10) + 1;
// // let guess = Math.floor(Math.random() * 10) + 1;

// // while (target !== guess) {
// // 	if (guess === 5) {
// // 		console.log("I don't like this number");
// // 		break;
// // 	}
// // 	console.log(`Target: ${target} | Guess: ${guess}`);
// // 	guess = Math.floor(Math.random() * 10) + 1;
// // }

// // console.log(`Final Result\nTarget: ${target} | Guess: ${guess}`);

// // for (let i = 0; i < 100; i++) {
// // 	console.log(i);
// // 	if (i === 10) {
// // 		break;
// // 	}
// // }

// // const target = Math.floor(Math.random() * 10) + 1;
// // let guess = Math.floor(Math.random() * 10) + 1;

// // while (true) {
// // 	if (target === guess) {
// // 		break;
// // 	}
// // 	console.log(`Target: ${target} | Guess: ${guess}`);
// // 	guess = Math.floor(Math.random() * 10) + 1;
// // }

// // console.log(`Final Result\nTarget: ${target} | Guess: ${guess}`);

// // const nums = [12, 34, 56, 34, 78, 54, 23, 12, 20, 1000];

// // // for (let i = 0; i < nums.length; i++) {
// // // 	console.log(nums[i]);
// // // }

// // for (let num of nums) {
// // 	console.log(num);
// // }

// // // Another example
// // for (let char of 'hello') {
// // 	console.log(char.toUpperCase());
// // }

// // const matrix = [
// // 	[1, 4, 7],
// // 	[9, 7, 2],
// // 	[9, 4, 6],
// // ];

// // for (let row of matrix) {
// // 	for (let col of row) {
// // 		console.log(col);
// // 	}
// // }

// // const cats = ['fashion', 'mobiles', 'books'];
// // const prods = ['tshirt', 'samsung', '1984'];

// // for (let i = 0; i < cats.length; i++) {
// // 	console.log(cats[i], prods[i]);
// // }

// const productPrices = {
// 	Apple: 80000,
// 	OnePlus: 50000,
// 	Samsung: 90000,
// };

// for (let key of Object.keys(productPrices)) {
// 	console.log(key, productPrices[key]);
// }

// for (let key in productPrices) {
// 	console.log(key, productPrices[key]);
// }

// // for (let value of Object.values(productPrices)) {
// // 	console.log(value);
// // }

// function greet() {
// 	console.log('Hello World');
// 	console.log('Hello World');
// 	console.log('Hello World');
// 	console.log('Hello World');
// 	console.log('Hello World');
// }

// greet();

// function rollDie() {
// 	const num = Math.floor(Math.random() * 6) + 1;
// 	console.log(num);
// }

// function throwDice() {
// 	rollDie();
// 	rollDie();
// 	rollDie();
// }

// throwDice();

// function greet(name, message) {
// 	console.log(`Hello, ${name}. ${message}`);
// }

// greet('John', 'how are you?');
// greet('Jane Doe', 'All good?');

// function rollDie() {
// 	const num = Math.floor(Math.random() * 6) + 1;
// 	console.log(num);
// }

// function throwDice(times) {
// 	for (let i = 0; i < times; i++) {
// 		rollDie();
// 	}
// }

// throwDice(30);

// const result = 'hello'.toUpperCase();
// console.log(result);

// function greet(name, message) {
// 	if (typeof name === 'undefined' || typeof message === 'undefined') {
// 		return 'PLEASE ENTER A NAME AND A MESSAGE';
// 	} else {
// 		return `${message}, ${name}`;
// 	}
// }

// const result = greet('John Doe', 'Hello');
// console.log(result);

// const message = 'Hello World';

// function greet() {
// 	const message = 'Goodbye World';
// 	console.log(message);
// }

// greet();

// console.log(message);

// const message = 'Hello World';

// if (true) {
// 	var message = 'Goodbye World';
// 	console.log(message);
// }

// console.log(message);

// for (var i = 0; i < 10; i++) {
// 	console.log('INSIDE THE LOOP - ', i);
// }

// console.log('OUTSIDE THE LOOP - ', i);

// function outer() {
// 	function inner() {
// 		const message = 'Hello World';
// 		console.log(message);
// 	}

// 	inner();
// 	console.log(message);
// }

// outer();

// function greet() {
// 	console.log('Hello World');
// }

// const hello = greet;

// hello();

// const helloWorld = function () {
// 	console.log('This is something');
// };

// helloWorld();

// function greet() {
// 	console.log('Hello World');
// }

setTimeout(function () {
    console.log('Hello World');
}, 1000);

// // // // // // // // // const square = function (num) {
// // // // // // // // // 	return num * num;
// // // // // // // // // };

// // // // // // // // // console.log(square(10));

// // // // // // // // const math1 = [
// // // // // // // // 	function (a, b) {
// // // // // // // // 		return a + b;
// // // // // // // // 	},
// // // // // // // // 	function (a, b) {
// // // // // // // // 		return a - b;
// // // // // // // // 	},
// // // // // // // // 	function (a, b) {
// // // // // // // // 		return a * b;
// // // // // // // // 	},
// // // // // // // // 	function (a, b) {
// // // // // // // // 		return a / b;
// // // // // // // // 	},
// // // // // // // // 	function (num) {
// // // // // // // // 		return num * num;
// // // // // // // // 	},
// // // // // // // // ];

// // // // // // // // // console.log(math[1](10, 6));

// // // // // // // // const math = {
// // // // // // // // 	PI: 3.14,
// // // // // // // // 	add: function (a, b) {
// // // // // // // // 		return a + b;
// // // // // // // // 	},
// // // // // // // // 	sub: function (a, b) {
// // // // // // // // 		return a - b;
// // // // // // // // 	},
// // // // // // // // 	mul: function (a, b) {
// // // // // // // // 		return a * b;
// // // // // // // // 	},
// // // // // // // // 	div: function (a, b) {
// // // // // // // // 		return a / b;
// // // // // // // // 	},
// // // // // // // // 	square: function (num) {
// // // // // // // // 		return num * num;
// // // // // // // // 	},
// // // // // // // // };

// // // // // // // // console.log(math.PI);
// // // // // // // // console.log(math.mul(10, 4));

// // // // // // // function add(a, b) {
// // // // // // // 	return a + b;
// // // // // // // }

// // // // // // // function sub(a, b) {
// // // // // // // 	return a - b;
// // // // // // // }

// // // // // // // function math(a, b, fn) {
// // // // // // // 	return fn(a, b);
// // // // // // // }

// // // // // // // console.log(math(10, 5, add));

// // // // // // // // Example 2
// // // // // // // function repeat(func, num) {
// // // // // // // 	for (let i = 0; i < num; i++) {
// // // // // // // 		func();
// // // // // // // 	}
// // // // // // // }

// // // // // // // function sayHello() {
// // // // // // // 	console.log('Hello World!');
// // // // // // // }
// // // // // // // function sayGoodbye() {
// // // // // // // 	console.log('Bye World!');
// // // // // // // }

// // // // // // // repeat(sayHello, 10);
// // // // // // // repeat(sayGoodbye, 5);
// // // // // // // // Example 3
// // // // // // // function randomPick(f1, f2) {
// // // // // // // 	let randNum = Math.random();
// // // // // // // 	if (randNum < 0.5) {
// // // // // // // 		f1();
// // // // // // // 	} else {
// // // // // // // 		f2();
// // // // // // // 	}
// // // // // // // }

// // // // // // // randomPick(sayHello, sayGoodbye);

// // // // // // function raiseBy(power) {
// // // // // // 	return function (num) {
// // // // // // 		return num ** power;
// // // // // // 	};
// // // // // // }

// // // // // // const test = raiseBy(5);
// // // // // // console.log(test(2));

// // // // // // function isBetween(x, y) {
// // // // // // 	return function (num) {
// // // // // // 		return num >= x && num <= y;
// // // // // // 	};
// // // // // // }

// // // // // // const isUnderAge = isBetween(0, 18);
// // // // // // const canEnterButNotDrink = isBetween(18, 21);
// // // // // // const canDrink = isBetween(21, 65);
// // // // // // const isSenior = isBetween(65, 100);

// // // // // // console.log(isUnderAge(5));
// // // // // // console.log(canEnterButNotDrink(20));
// // // // // // console.log(canDrink(30));
// // // // // // console.log(isSenior(70));

// // // // // // function add(a, b) {
// // // // // // 	return a + b;
// // // // // // }

// // // // // // function sub(a, b) {
// // // // // // 	return a - b;
// // // // // // }

// // // // // // function math(a, b, fn) {
// // // // // // 	return fn(a, b);
// // // // // // }

// // // // // // console.log(math(10, 5, sub));

// // // // // // setTimeout(function () {
// // // // // // 	console.log(Math.random());
// // // // // // }, 1000);

// // // // // // function greet() {
// // // // // // 	console.log('Hello world');
// // // // // // }

// // // // // // greet();
// // // // // // greet();
// // // // // // greet();

// // // // // // console.log(hello);
// // // // // // var hello = 'world';

// // // // // // const nums = [9, 2, 4, 6, 2, 3, 7, 6];

// // // // // // nums.forEach(function (num) {
// // // // // // 	console.log(num);
// // // // // // });

// // // // // // for (let num of nums) {
// // // // // // 	console.log(num);
// // // // // // }

// // // // // const movies = [
// // // // // 	{
// // // // // 		title: 'Avengers',
// // // // // 		rating: 4.1,
// // // // // 	},
// // // // // 	{
// // // // // 		title: 'Dr. Strange',
// // // // // 		rating: 3.9,
// // // // // 	},
// // // // // 	{
// // // // // 		title: 'Tenet',
// // // // // 		rating: 4.3,
// // // // // 	},
// // // // // 	{
// // // // // 		title: 'Joker',
// // // // // 		rating: 4.7,
// // // // // 	},
// // // // // ];

// // // // // movies.forEach(function (movie, idx) {
// // // // // 	console.log(`${idx}: ${movie.title} has a rating of ${movie.rating}`);
// // // // // });

// // // // // const names = ['john', 'jack', 'jane', 'james'];

// // // // // const upper_names = names.map(function (name) { // ["JOHN", "JACK"]
// // // // // 	return name.toUpperCase();
// // // // // });

// // // // // console.log(upper_names);

// // // // // const upper_names = [];

// // // // // for (let name of names) {
// // // // // 	upper_names.push(name.toUpperCase());
// // // // // }

// // // // // console.log(upper_names);

// // // // // const nums = [2, 3, 4, 7, 6, 8, 13, 10, 19, 12, 14, 22, 21, 16];

// // // // // // const doubles = nums.map(function (num) {
// // // // // // 	return num * 2;
// // // // // // });
// // // // // // console.log(doubles);

// // // // // const numsData = nums.map(function (num) {
// // // // // 	return { value: num, isEven: num % 2 === 0 };
// // // // // });

// // // // // console.log(numsData);

// // // // // function square(num) {
// // // // // 	return num * num;
// // // // // }

// // // // // const square = function (num) {
// // // // // 	return num * num;
// // // // // };

// // // // // const square = num => num * num;

// // // // // console.log(square(5));

// // // // const nums = [2, 3, 4, 7, 6, 8, 13, 10, 19, 12, 14, 22, 21, 16];

// // // // const doubles = nums.map(num => num * 2);

// // // // console.log(doubles);

// // // // const nums = [1,2,3,4,5,6]

// // // // // using regular function expressions
// // // // const doubles1 = nums.map(function (n) {
// // // //   return n * 2
// // // // })

// // // // // using arrow functions
// // // // const doubles2 = nums.map(n => {
// // // //   return n * 2
// // // // })

// // // // // using arrow function's one-liner implicit return
// // // // const doubles3 = nums.map(n => n * 2)
// // // // const parityList = nums.map(n => n % 2 === 0 ? 'Even' : 'Odd')

// // // // let movies = ['The Terminator', 'The Avengers', 'Jurassic Park', 'Titanic'];

// // // // // const result = movies.find((movie) => movie[0] === 'J');
// // // // const result = movies.find((movie) => movie.includes('tan'));
// // // // console.log(result);

// // // const books = [
// // // 	{
// // // 		title: 'The Shining',
// // // 		author: 'Stephen King',
// // // 		rating: 4.1,
// // // 	},
// // // 	{
// // // 		title: 'Sacred Games',
// // // 		author: 'Vikram Chandra',
// // // 		rating: 4.5,
// // // 	},
// // // 	{
// // // 		title: '1984',
// // // 		author: 'George Orwell',
// // // 		rating: 4.9,
// // // 	},
// // // 	{
// // // 		title: 'The Alchemist',
// // // 		author: 'Paulo Coelho',
// // // 		rating: 3.5,
// // // 	},
// // // 	{
// // // 		title: 'The Great Gatsby',
// // // 		author: 'F. Scott Fitzgerald',
// // // 		rating: 3.8,
// // // 	},
// // // ];

// // // const result = books.find((book) => book.rating < 4);
// // // console.log(result);

// // // const goodBook = books.find(b => b.rating >= 4.3)

// // // const georgeBook = books.find(b => (
// // //   b.author.includes('George')
// // // ))

// // // const lowRated = books.find(book => {
// // //   return book.rating < 4
// // // })

// // // console.log(goodBook)
// // // console.log(georgeBook)

// // // const books = [
// // // 	{
// // // 		title: 'The Shining',
// // // 		author: 'Stephen King',
// // // 		rating: 4.1,
// // // 	},
// // // 	{
// // // 		title: 'Sacred Games',
// // // 		author: 'Vikram Chandra',
// // // 		rating: 4.5,
// // // 	},
// // // 	{
// // // 		title: '1984',
// // // 		author: 'George Orwell',
// // // 		rating: 4.9,
// // // 	},
// // // 	{
// // // 		title: 'The Alchemist',
// // // 		author: 'Paulo Coelho',
// // // 		rating: 3.5,
// // // 	},
// // // 	{
// // // 		title: 'The Great Gatsby',
// // // 		author: 'F. Scott Fitzgerald',
// // // 		rating: 3.8,
// // // 	},
// // // ];

// // // const result = books.filter((book) => book.rating < 4);
// // // console.log(result);

// // // const goodBook = books.filter((b) => b.rating >= 4.3);

// // // const georgeBooks = books.filter((b) => b.author.includes('George'));

// // // const lowRated = books.filter((book) => {
// // // 	return book.rating < 4;
// // // });

// // // let query = 'the';
// // // const filteredBooks = books.filter((book) => {
// // // 	const title = book.title.toLowerCase();
// // // 	return title.includes(query);
// // // });

// // // console.log(goodBook);
// // // console.log(georgeBooks);
// // // console.log(lowRated);
// // // console.log(booksWithThe);

// // // const names = ['jack', 'james', 'brad', 'john', 'jane', 'josh'];

// // // const result = names.some((name) => name[0] === 'b');
// // // console.log(result);

// // // const result = names.every((name) => name[0] === 'j');
// // // console.log(result);

// // // names.every(word => {
// // //   return word[0] === 'j'
// // // }) // false

// // // names.every(word => word.length > 3) // true

// // // names.every(w => {
// // //   let lastChar = w[w.length - 1]
// // //   return lastChar !== 'a'
// // // }) // true

// // // const bestBooks = books.every(book => (
// // //   book.rating >= 4
// // // ))

// // // const notAuthor = books.every(
// // //   book => book.author.toLowerCase() !== 'chetan bhagat'
// // // )

// // // console.log(bestBooks)
// // // console.log(notAuthor)

// // // const prices = [500.4, 211, 23, 5, 4, 22.2, -23.2, 9233];

// // // const result = prices.sort((a, b) => b - a);
// // // console.log(result);

// // // const nums = [1, 2, 3, 4, 5];

// // // const result = nums.reduce((acc, currVal) => acc * currVal);
// // // console.log(result);

// // // acc    currVal
// // // 1			2
// // // 3			3
// // // 6			4
// // // 10			5
// // // 15

// // let nums = [21, 221, 2, 1, 34, 123, 4342, 56, 4];

// // const result = nums.reduce((acc, currVal) => {
// // 	if (currVal > acc) {
// // 		return currVal;
// // 	}
// // 	return acc;
// // });
// // console.log(result);

// // // acc 			currVal
// // // 21				221
// // // 221			2
// // // 221			1
// // // 221			34
// // // 221			123
// // // 221			4342
// // // 4342			56
// // // 4342			4
// // // 4342

// // // Example 2 -> Product (multiply everything)
// // [3,2,4,6,9].reduce((total, currentVal) => {
// //   return total * currentVal
// // })

// // // Example 3 -> Finding max value
// // let nums = [21, 221, 2, 1, 34, 123, 4342, 56, 4]

// // const maxVal = nums.reduce((max, currentVal) => {
// //   if (currentVal > max) {
// //     return currentVal
// //   }
// //   return max
// // })
// // console.log(maxVal) // 4342

// // // A shorter way is to use the Math.max and implicit return
// // const maxVal = nums.reduce((max, currVal) => Math.max(max, currVal))
// // console.log(maxVal)

// const nums = [1, 2, 3, 4, 5];

// const result = nums.reduce((acc, currVal) => acc + currVal, 100);
// console.log(result);

// function add(x, y) {
// 	if (typeof x === 'undefined') {
// 		x = 0;
// 	}
// 	if (typeof y === 'undefined') {
// 		y = 0;
// 	}
// 	return x + y;
// }

// function add(x = 0, y = 0) {
// 	return x + y;
// }

// console.log(add());

// function printVals(a, b, c) {
// 	console.log(a);
// 	console.log(b);
// 	console.log(c);
// }

// const names = ['John', 'Jane', 'Jack'];

// printVals(...'hello');

// function add(...nums) {
// 	return nums.reduce((acc, currVal) => acc + currVal);
// }

// console.log(add(1, 2, 23, 342));
// // console.log(add(10, 5, 6, 8, 12));

// function printNames(name1, name2, ...others) {
// 	console.log(name1);
// 	console.log(name2);
// 	console.log(others);
// }

// printNames('john', 'jane', 'jack', 'josh');

// const user = {
// 	firstName: 'John',
// 	lastName: 'Doe',
// 	email: 'john.doe@gmail.com',
// 	phone: 99982234567,
// };

// const { firstName, lastName, email: emailAddress, phone } = user;
// console.log(firstName, lastName, emailAddress, phone);

function profile({ firstName, lastName, age }) {
    console.log(
        `Hello, my name is ${firstName} ${lastName} and I am ${age} years old.`
    );
}

profile({ firstName: 'Jane', lastName: 'Doe', age: 20 });

Scratchpad 5,6

// // // const math = {
// // // 	add: function (a, b) {
// // // 		return a + b;
// // // 	},
// // // 	sub: function (a, b) {
// // // 		return a - b;
// // // 	},
// // // 	mul: function (a, b) {
// // // 		return a * b;
// // // 	},
// // // 	div: function (a, b) {
// // // 		return a / b;
// // // 	},
// // // };

// // // console.log(math.add(10, 5));

// // // const movieReviews = [4.5, 5.0, 3.2, 2.1, 4.7, 3.8, 3.1, 3.9, 4.4];
// // // const highest = Math.max(...movieReviews);
// // // const lowest = Math.min(...movieReviews);

// // // let total = 0;
// // // movieReviews.forEach((rating) => (total += rating));
// // // const average = total / movieReviews.length;

// // // const info = { highest, lowest, average, hello: 'world' };
// // // console.log(info);

// // // const getReviewDetails = (arr) => {
// // // 	const highest = Math.max(...arr);
// // // 	const lowest = Math.min(...arr);
// // // 	const total = arr.reduce((accumulator, nextVal) => accumulator + nextVal);
// // // 	const average = total / arr.length;

// // // 	return {
// // // 		highest,
// // // 		lowest,
// // // 		total,
// // // 		average,
// // // 	};
// // // };

// // // const reviewList = [4.5, 5.0, 3.2, 2.1, 4.7, 3.8, 3.1, 3.9, 4.4];

// // // const statistics = getReviewDetails(reviewList);
// // // console.log(statistics);

// // // const fullName = 'Jane';
// // // const role = 'admin';

// // // const data = { [role.toUpperCase() + 1]: fullName };

// // // console.log(data);

// // // const addProperty = (obj, k, v) => {
// // // 	return { ...obj, [k]: v };
// // // };

// // // const result = addProperty({ firstName: 'John' }, 'lastName', 'Doe');

// // // console.log(result); // {firstName: "John", lastName: "Doe"}

// // function add(a, b) {
// // 	return a + b;
// // }

// // const math = {
// // 	add,
// // 	sub(a, b) {
// // 		return a - b;
// // 	},
// // 	mul(a, b) {
// // 		return a * b;
// // 	},
// // 	div(a, b) {
// // 		return a / b;
// // 	},
// // };

// // console.log(math.div(10, 5));

// // console.log('Hello World');

// // SCOPE -> object
// // BROWSER -> GLOBAL SCOPE -> window
// // NODE.JS -> GLOBAL SCOPE -> global
// // this -> object -> CURRENT EXECUTION SCOPE

// // function helloWorld() {
// // 	console.log(this);
// // }

// // window.helloWorld();
// // helloWorld();

// // const profile = {
// // 	firstName: 'John',
// // 	lastName: 'Doe',
// // 	age: 20,
// // 	greet() {
// // 		console.log(
// // 			`Hello my name is ${this.firstName} ${this.lastName} and I am ${this.age} years old`
// // 		);
// // 	},
// // };

// // profile.greet();

// // function hello() {
// // 	console.log(
// // 		`Hello my name is ${this.firstName} ${this.lastName} and I am ${this.age} years old`
// // 	);
// // }

// // const profile1 = {
// // 	firstName: 'John',
// // 	lastName: 'Doe',
// // 	age: 20,
// // 	hello,
// // };

// // const profile2 = {
// // 	firstName: 'Jane',
// // 	lastName: 'Smith',
// // 	age: 26,
// // 	hello,
// // };

// // profile1.hello();
// // profile2.hello();

// // let asomethingCOM = 'hello world';

// // console.log(this);

// // const profile = {
// // 	firstName: 'John',
// // 	lastName: 'Doe',
// // 	age: 20,
// // 	greet() {
// // 		console.log(
// // 			`Hello my name is ${this.firstName} ${this.lastName} and I am ${this.age} years old`
// // 		);
// // 	},
// // };

// // const profileGreet = profile.greet;

// // profileGreet();

// // const hellos = {
// // 	messages: [
// // 		'hello world',
// // 		'hello universe',
// // 		'hello darkness',
// // 		'hello hello',
// // 		'heylo',
// // 	],
// // 	pickMsg() {
// // 		const index = Math.floor(Math.random() * this.messages.length);
// // 		return this.messages[index];
// // 	},
// // 	start() {
// // 		setInterval(() => {
// // 			// console.log(this);
// // 			console.log(this.pickMsg());
// // 		}, 1000);
// // 	},
// // };

// // hellos.start();

// // const profile = {
// // 	firstName: 'John',
// // 	lastName: 'Doe',
// // 	age: 20,
// // 	greet: () => {
// // 		// this -> window
// // 		console.log(
// // 			`Hello my name is ${this.firstName} ${this.lastName} and I am ${this.age} years old`
// // 		);
// // 	},
// // };

// // profile.greet();

// // console.dir(document);

// // const el = document.getElementById('special');
// // console.log(el);

// // const lis = document.getElementsByTagName('li');
// // // console.log(lis);

// // for (let li of lis) {
// // 	console.log(li);
// // }

// // const els = document.getElementsByClassName('info');
// // console.log(els);

// // const ul = document.getElementsByTagName('ul')[0];
// // const els = ul.getElementsByClassName('info');
// // console.log(els);

// // const el = document.querySelector('#special');
// // console.log(el);

// // const els = document.querySelectorAll('li');
// // console.log(els);

// // const els = document.querySelectorAll('li');
// // // console.log(h2.innerText);
// // // h2.innerText = 'Hello this is something!!!!!!!!!!!!';

// // for (let el of els) {
// // 	setInterval(function () {
// // 		el.innerText = Math.random();
// // 	}, 10);
// // }

// // const p = document.querySelector('p');
// // // console.log(p.innerHTML);
// // p.innerHTML = 'Hello <strong>World</strong>';
// // p.innerHTML += 'test';

// // const a = document.querySelector('a');
// // console.log(a);
// // a.href = 'https://yahoo.co.in';
// // a.id = 'hello-world';
// // a.className = 'this-is-a-class';

// // const a = document.querySelector('a');

// // // console.log(a.id);
// // // console.log(a.getAttribute('id'));

// // // a.id = 'hello';

// // a.setAttribute('id', 'jello');

// // const li = document.querySelector('ul>li.info');
// // console.log(li.parentElement.children);

// // const h2 = document.querySelector('h2');
// // h2.style.color = 'red';
// // h2.style.fontFamily = 'Arial';

// // const nums = [12, 34, 60, 12, 18];
// const colors = [
// 	'red',
// 	'yellow',
// 	'purple',
// 	'green',
// 	'blue',
// 	'orange',
// 	'brown',
// 	'gray',
// 	'pink',
// 	'maroon',
// ];

// // const lis = document.querySelectorAll('li');

// // for (let li of lis) {
// // 	setInterval(function () {
// // 		li.style.color = colors[Math.floor(Math.random() * colors.length)];
// // 		li.style.fontSize = `${nums[Math.floor(Math.random() * nums.length)]}px`;
// // 		document.body.style.backgroundColor =
// // 			colors[Math.floor(Math.random() * colors.length)];
// // 	}, 50);
// // }

// // const h2 = document.querySelector('h2');
// // const h2Styles = getComputedStyle(h2);
// // console.log(h2Styles.color);

// // const li = document.querySelector('li');
// // // li.className = 'todo done';
// // // console.log(li.classList);
// // li.classList.toggle('done');

// // const root = document.querySelector('#root');

// // const title = document.createElement('h1');
// // title.innerText = 'This is created using JavaScript';
// // title.style.fontFamily = 'Arial, sans-serif';
// // title.style.color = 'purple';

// // const div = document.createElement('div');
// // div.appendChild(title);

// // root.appendChild(div);

// // const lis = document.querySelectorAll('li');
// // const li = lis[2];
// // const ul = document.querySelector('ul');

// // const newItem = document.createElement('li');
// // newItem.innerText = 'Hello World, this is some text.';
// // newItem.style.color = 'red';

// // // ul.appendChild(newItem);
// // ul.insertBefore(newItem, li);

// // const p = document.querySelector('p');
// // p.remove();

// // const b = document.createElement('b');
// // b.innerText = 'Hello World';
// // const i = document.createElement('i');
// // i.innerText = 'Goodbye World';

// // // p.insertAdjacentElement('afterend', b);
// // p.prepend(b, i);

// const btn = document.querySelector('button');

// btn.addEventListener('mouseleave', function () {
// 	document.body.style.backgroundColor =
// 		colors[Math.floor(Math.random() * colors.length)];
// });
// btn.addEventListener('mouseleave', function () {
// 	console.log('Hello World');
// });

// window.addEventListener('scroll', function () {
// 	console.log('I was scrolled');
// });

// // btn.onclick = function () {
// // 	document.body.style.backgroundColor =
// // 		colors[Math.floor(Math.random() * colors.length)];
// // };

// // btn.onclick = function () {
// // 	console.log('Hello World');
// // };

const input = document.querySelector('input');
const button = document.querySelector('button');
const list = document.querySelector('#tasksList');

button.addEventListener('click', function () {
    const li = document.createElement('li');
    li.innerText = input.value;

    const deleteBtn = document.createElement('button');
    deleteBtn.innerText = 'Delete Task';
    deleteBtn.style.marginLeft = '10px';
    deleteBtn.addEventListener('click', function () {
        li.remove();
    });
    const completeBtn = document.createElement('button');
    completeBtn.innerText = 'Complete';
    completeBtn.style.marginLeft = '20px';
    completeBtn.addEventListener('click', function () {
        li.style.textDecoration = 'line-through';
    });

    li.append(completeBtn, deleteBtn);
    list.append(li);

    input.value = '';
});


// // // // function multiply(a, b) {
// // // // 	return a * b;
// // // // }

// // // // function square(num) {
// // // // 	return multiply(num, num);
// // // // }

// // // // function rightTriangle(a, b, c) {
// // // // 	return square(a) + square(b) === square(c);
// // // // }

// // // // console.log(rightTriangle(1, 2, 3));

// // // // console.log('The first log');
// // // // alert('An interruption in between');
// // // // console.log('The last log');

// // // // console.log('The first log');
// // // // setTimeout(function () {
// // // // 	console.log('HELLOLLLLLLO');
// // // // }, 5000);
// // // // console.log('The last log');

// // // const btn = document.querySelector('button');

// // // setTimeout(() => {
// // // 	btn.style.transform = 'translateX(100px)';
// // // 	setTimeout(() => {
// // // 		btn.style.transform = 'translateX(200px)';
// // // 		setTimeout(() => {
// // // 			btn.style.transform = 'translateX(300px)';
// // // 			setTimeout(() => {
// // // 				btn.style.transform = 'translateX(400px)';
// // // 				setTimeout(() => {
// // // 					btn.style.transform = 'translateX(500px)';
// // // 					setTimeout(() => {
// // // 						btn.style.transform = 'translateX(600px)';
// // // 					}, 2000);
// // // 				}, 2000);
// // // 			}, 2000);
// // // 		}, 2000);
// // // 	}, 2000);
// // // }, 2000);

// // const willGetAPLayStation = new Promise((resolve, reject) => {
// // 	setTimeout(() => {
// // 		const random = Math.random();

// // 		if (random > 0.5) {
// // 			resolve();
// // 		} else {
// // 			reject();
// // 		}
// // 	}, 2000);
// // });

// // // willGetAPLayStation
// // // 	.then(() => {
// // // 		console.log('Thank you!!! I am very happy!');
// // // 	})
// // // 	.catch(() => {
// // // 		console.log('I hate you!');
// // // 	});

// // function makePlayStation() {
// // 	return new Promise((resolve, reject) => {
// // 		setTimeout(() => {
// // 			const random = Math.random();

// // 			if (random > 0.5) {
// // 				resolve();
// // 			} else {
// // 				reject();
// // 			}
// // 		}, 2000);
// // 	});
// // }

// // const result = makePlayStation();
// // result
// // 	.then(() => {
// // 		console.log('Resolved');
// // 	})
// // 	.catch(() => {
// // 		console.log('Rejected');
// // 	});

// function fakeRequest(url) {
// 	return new Promise((resolve, reject) => {
// 		setTimeout(() => {
// 			const pages = {
// 				'/users': [
// 					{ id: 1, username: 'john' },
// 					{ id: 2, username: 'jane' },
// 				],
// 				'/users/1': {
// 					id: 1,
// 					username: 'johndoe',
// 					topPostId: 53231,
// 					city: 'mumbai',
// 				},
// 				'/users/5': {
// 					id: 1,
// 					username: 'janedoe',
// 					topPostId: 32443,
// 					city: 'pune',
// 				},
// 				'/posts/53231': {
// 					id: 1,
// 					title: 'Really amazing post',
// 					slug: 'really-amazing-post',
// 				},
// 			};

// 			const data = pages[url];

// 			if (data) {
// 				resolve({ status: 200, data });
// 			} else {
// 				reject({ status: 404, message: 'SORRY THIS URL DOES NOT EXIST.' });
// 			}
// 		}, 1000);
// 	});
// }

// fakeRequest('/users')
// 	.then((response) => {
// 		console.log('First request completed');
// 		const userId = response.data[0].id;
// 		return fakeRequest(`/users/${userId}`);
// 	})
// 	.then((response) => {
// 		console.log('Second request completed');
// 		const topPostId = response.data.topPostId;
// 		return fakeRequest(`/posts/${topPostId}`);
// 	})
// 	.then((response) => {
// 		console.log('Third request completed');
// 		console.log(response);
// 	})
// 	.catch((err) => {
// 		console.log(err);
// 	});

// isPalindrome("kayak") => true // vishal
// isAnagram("fired", "fried") => true // vishal
// removeDuplicates(["hello", "world", "hello", 1, 1, 4, "test"]) => ["hello", "world", 1, 4, "test"]  Atharva //
// vowelCount("hello world this is something") => 8 // Sumit
// swapKV({name: "John Doe", age: 20, hello: "world"}) => {"John Doe": "name", 20: "age", world: "hello"} // Sanjeev
// reverseString("hello world") => "dlrow olleh" // Apeksha
// capitalize("hello world this is something") => "Hello World This Is Something" // Saurabh
// secondLargestNumber([12,23434,2,1,2,4,5,2323,23]) => 2323 // Atul





///INDEX.html

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>My Web Page</title>
        <style>
            /* h2 {
                color: red;
            } */
            /* .todo {
                color: green;
                font-size: 30px;
                font-weight: bold;
            }
            .done {
                color: lightgray;
                text-decoration: line-through;
                font-weight: normal;
            } */
        </style>
    </head>
    <body>
        <button>Click me</button>
        <h1>My Web Page</h1>
        <div id="root"></div>

        <!-- <p class="special">
            Lorem ipsum dolor sit amet, consectetur adipisicing elit. Blanditiis,
            consectetur.
            <script>
                console.log('HELLO WORLD!');
            </script>
        </p> -->

        <p class="info">
            Lorem ipsum dolor sit amet consectetur adipisicing elit. Sint, ratione.
        </p>

        <p id="special">
            <a href="https://google.com">This is google</a>. Lorem ipsum dolor sit
            amet consectetur <strong>adipisicing</strong> elit. Nobis animi maxime
            ipsum, dolore molestiae nam vero, sequi doloremque quis velit rem cumque
            atque, neque libero tempora. Impedit asperiores ipsam ratione.
        </p>
        <p class="info">
            Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nihil, soluta?
        </p>

        <ul>
            <li class="todo done">
                1. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis,
                possimus.
            </li>
            <li class="todo">
                2. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis,
                possimus.
            </li>
            <li class="todo done">
                3. Lorem ipsum dolor sit amet consectetur ad possimus.
            </li>
            <li class="todo done">
                3. Lorem ipsum dolor sit amet consectetur ad possimus.
            </li>
            <li class="todo">3. Lorem ipsum dolor mus.</li>
            <li class="todo">
                3. Lorem ipsum dolor sit amet consectetur ad possimus.
            </li>
            <li class="todo">
                3. Lorem ipsum dolor sit amet consectetur ad possimus. Lorem ipsum dolor
                sit amet consectetur adipisicing elit. Excepturi similique vero animi
                earum minima magnam recusandae facilis facere assumenda. Animi?
            </li>
        </ul>

        <script src="./scratchpad_5.js"></script>
    </body>
</html>


//todo.html
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>My Task Manager</title>
    </head>
    <body>
        <h1>My Task Manager</h1>

        <h3>Add new Task</h3>
        <input type="text" placeholder="Enter task to complete" />
        <button>Add</button>

        <hr />
        <h3>All Tasks</h3>
        <ul id="tasksList"></ul>

        <script src="./scratchpad_5.js"></script>
    </body>
</html>

Scratchpad #7 and React

// // // function add(a, b) {
// // // 	return a + b;
// // // }

// // // const result = add(10, 20);
// // // console.log(result);

// // // console.log('Hello World');

// // // fetch('https://swapi.dev/api/peasdasdople')
// // // 	.then((res) => {
// // // 		if (!res.ok) {
// // // 			throw new Error();
// // // 		}
// // // 		const data = res.json();
// // // 		return data;
// // // 	})
// // // 	.then((data) => {
// // // 		console.log(data);
// // // 	})
// // // 	.catch((err) => {
// // // 		console.log('In the catch block\n', err);
// // // 	});

// // // axios
// // // 	.get('https://swapi.dev/api/people')
// // // 	.then((response) => {
// // // 		// console.log(response);
// // // 		const film = response.data.results[0].films[0];
// // // 		return axios.get(film);
// // // 	})
// // // 	.then((response) => {
// // // 		console.log(response.data);
// // // 	})
// // // 	.catch((err) => {
// // // 		console.log('In the catch block\n', err);
// // // 	});

// // const root = document.querySelector('#root');

// // const container = document.createElement('section');
// // container.style.display = 'grid';
// // container.style.gridTemplateColumns = '1fr 1fr 1fr 1fr 1fr 1fr';
// // container.style.gap = '40px';

// // axios
// // 	.get('https://pokeapi.co/api/v2/pokemon?limit=100000')
// // 	.then(({ data }) => {
// // 		for (let pokemon of data.results) {
// // 			axios.get(pokemon.url).then(({ data }) => {
// // 				const pokemonCard = document.createElement('div');
// // 				pokemonCard.style.display = 'flex';
// // 				pokemonCard.style.flexDirection = 'column';
// // 				pokemonCard.style.justifyContent = 'center';
// // 				pokemonCard.style.alignItems = 'center';

// // 				const pokemonName = document.createElement('p');
// // 				pokemonName.innerText = data.name;
// // 				pokemonName.style.fontFamily = 'Arial, sans-serif';
// // 				pokemonName.style.fontWeight = 'bold';
// // 				pokemonName.style.textTransform = 'capitalize';

// // 				const pokemonImg = document.createElement('img');
// // 				pokemonImg.src = data.sprites.other['official-artwork'].front_default;
// // 				pokemonImg.style.width = '100%';

// // 				pokemonCard.append(pokemonImg, pokemonName);

// // 				container.append(pokemonCard);
// // 			});
// // 		}
// // 	})
// // 	.catch((err) => {
// // 		console.log(err);
// // 	});

// // root.append(container);

// // function fetchData() {
// // 	const response = axios.get('https://pokeapi.co/api/v2/pokemon');
// // 	response.then((data) => {
// // 		console.log(data);
// // 	});
// // }

// // fetchData();

// // async function greet() {
// // 	throw 'Hello World';
// // }

// // // function greet() {
// // // 	return new Promise((resolve, reject) => {
// // // 		resolve('Hello World');
// // // 	});
// // // }

// // greet()
// // 	.then((data) => {
// // 		console.log('In the then block', data);
// // 	})
// // 	.catch((err) => {
// // 		console.log('In the catch block', err);
// // 	});

// // async function add(x, y) {
// // 	if (typeof x !== 'number' || typeof y !== 'number') {
// // 		throw 'x and y must be numbers';
// // 	}
// // 	return x + y;
// // }

// // add(10, '5')
// // 	.then((result) => {
// // 		console.log(result);
// // 	})
// // 	.catch((err) => {
// // 		console.log(err);
// // 	});

// // async function fetchData() {
// // 	try {
// // 		const response = await axios.get('https://pokeapi.co/api/v2/pokemon');
// // 		console.log(response);
// // 	} catch (err) {
// // 		console.log('In the catch block', err);
// // 	}
// // }

// // fetchData();

// // fetchData().catch((err) => {
// // 	console.log('In the catch block', err);
// // });

// async function fetchData() {
// 	const pokemon1Promise = axios.get('https://swapi.dev/api/people/1');
// 	const pokemon2Promise = axios.get('https://swapi.dev/api/people/2');
// 	const pokemon3Promise = axios.get('https://swapi.dev/api/people/3');
// 	const results = await Promise.all([
// 		pokemon1Promise,
// 		pokemon2Promise,
// 		pokemon3Promise,
// 	]);
// 	console.log(results);
// 	// const pokemon1 = await pokemon1Promise;
// 	// const pokemon2 = await pokemon2Promise;
// 	// const pokemon3 = await pokemon3Promise;
// 	// console.log(pokemon1.data);
// 	// console.log(pokemon2.data);
// 	// console.log(pokemon3.data);
// }

// fetchData();

// function initializeDeck() {
// 	const deck = [];
// 	const suits = ['hearts', 'diamonds', 'spades', 'clubs'];
// 	const values = '2,3,4,5,6,7,8,9,10,J,Q,K,A';
// 	for (let value of values.split(',')) {
// 		for (let suit of suits) {
// 			deck.push({ value, suit });
// 		}
// 	}
// 	return deck;
// }

// function drawCard(deck, drawnCards) {
// 	const card = deck.pop();
// 	drawnCards.push(card);
// 	return card;
// }

// function drawMultiple(numCards, deck, drawnCards) {
// 	const cards = [];
// 	for (let i = 0; i < numCards; i++) {
// 		cards.push(drawCard(deck, drawnCards));
// 	}
// 	return cards;
// }

// function shuffle(deck) {
// 	// loop over array backwards
// 	for (let i = deck.length - 1; i > 0; i--) {
// 		// pick random index before current element
// 		let j = Math.floor(Math.random() * (i + 1));
// 		[deck[i], deck[j]] = [deck[j], deck[i]];
// 	}
// 	return deck;
// }

// const deck1 = initializeDeck();
// const hand = [];
// shuffle(deck1);

// drawCard(deck1, hand);
// drawCard(deck1, hand);
// drawMultiple(3, deck1, hand);

// console.log(deck1);
// console.log(hand);

// const makeDeck = () => {
// 	return {
// 		deck: [],
// 		drawnCards: [],
// 		suits: ['hearts', 'diamonds', 'spades', 'clubs'],
// 		values: '2,3,4,5,6,7,8,9,10,J,Q,K,A',
// 		initializeDeck() {
// 			for (let value of this.values.split(',')) {
// 				for (let suit of this.suits) {
// 					this.deck.push({ value, suit });
// 				}
// 			}
// 			return this.deck;
// 		},
// 		drawCard() {
// 			const card = this.deck.pop();
// 			this.drawnCards.push(card);
// 			return card;
// 		},
// 		drawMultiple(numCards) {
// 			const cards = [];
// 			for (let i = 0; i < numCards; i++) {
// 				cards.push(this.drawCard());
// 			}
// 			return cards;
// 		},
// 		shuffle() {
// 			const { deck } = this;
// 			for (let i = deck.length - 1; i > 0; i--) {
// 				let j = Math.floor(Math.random() * (i + 1));
// 				[deck[i], deck[j]] = [deck[j], deck[i]];
// 			}
// 		},
// 	};
// };

// const deck1 = makeDeck();
// const deck2 = makeDeck();
// // deck1.initializeDeck();
// // deck1.shuffle();
// // deck1.drawCard();

// console.log(deck1);
// console.log(deck2);

class Person {
    constructor(firstName, lastName, age) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
    }

    greet() {
        console.log(
            `Hello, my name is ${this.firstName} ${this.lastName} and I am ${this.age} years old`
        );
    }
}

// function Person(firstName, lastName, age) {
// 	this.firstName = firstName;
// 	this.lastName = lastName;
// 	this.age = age;
// 	// this.greet = function () {
// 	// 	console.log(
// 	// 		`Hello, my name is ${this.firstName} ${this.lastName} and I am ${this.age} years old`
// 	// 	);
// 	// };
// }
// Person.prototype.hello = 'World';
// Person.prototype.greet = function () {
// 	console.log(
// 		`Hello, my name is ${this.firstName} ${this.lastName} and I am ${this.age} years old`
// 	);
// };

// function person(firstName, lastName, age) {
// 	return {
// 		firstName,
// 		lastName,
// 		age,
// 		greet() {
// 			console.log(
// 				`Hello, my name is ${this.firstName} ${this.lastName} and I am ${this.age} years old`
// 			);
// 		},
// 	};
// }

const john = new Person('John', 'Doe', 20);
const jane = new Person('Jane', 'Smith', 22);
const jack = new Person('Jack', 'Ma', 35);

// const jack = {
// 	firstName: 'Jack',
// 	lastName: 'Ma',
// 	age: 34,
// 	greet() {
// 		console.log(
// 			`Hello, my name is ${this.firstName} ${this.lastName} and I am ${this.age} years old`
// 		);
// 	},
// };
console.log(john);
console.log(jane);
console.log(jack);




// TODO.html
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>My Task Manager</title>
    </head>
    <body>
        <h1>My Task Manager</h1>

        <h3>Add new Task</h3>
        <input type="text" placeholder="Enter task to complete" />
        <button>Add</button>

        <hr />
        <h3>All Tasks</h3>
        <ul id="tasksList"></ul>

        <script src="./scratchpad_5.js"></script>
    </body>
</html>


// FETCH.html
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
    </head>
    <body>
        <div id="root"></div>
        <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
        <script src="./scratchpad_7.js"></script>
    </body>
</html>


// REACT
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>ReactJS</title>
    </head>
    <body>
        <div id="root"></div>

        <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
        <script src="https://unpkg.com/react@^16/umd/react.development.js"></script>
        <script src="https://unpkg.com/react-dom@^16/umd/react-dom.development.js"></script>

        <script type="text/babel">
            // const root = document.querySelector('#root');
            // const h1 = document.createElement('h1');
            // h1.innerText = 'Hello World from the DOM.';
            // root.append(h1);

            // const title = React.createElement('h1', {
            // 	id: 'helloworld',
            // 	className: 'test',
            // 	children: 'Hello World from ReactJS',
            // });

            // const para = React.createElement('p', null, 'This is a paragraph.');

            // const container = React.createElement('div', { children: [title, para] });

            // const container = React.createElement(
            // 	'div',
            // 	null,
            // 	React.createElement('h1', null, 'Hello World'),
            // 	React.createElement('p', null, 'This is a paragraph')
            // );

            // const title = React.createElement('h1', {className: 'special'}, 'Hello World from ReactJS');
            // const title = <div><h1 className="special">{new Date().toUTCString()}</h1></div>;

            // const children = 'Hello World. This is the page title';
            // const className = 'title';
            // const props = { children, className };

            // const para = <p {...props} className='helloworld' />;

            function Post({ title, date, author, children, link, highlight }) {
                return (
                    <div style={{ backgroundColor: highlight ? 'yellow' : 'white' }}>
                        <h3>{title}</h3>
                        <p>
                            Published on {date} by {author}
                        </p>
                        <p>{children}</p>
                        <a href={link}>Read More</a>
                    </div>
                );
            }

            const posts = (
                <section>
                    <Post title='Article #666' author='Jane Doe' date='23rd June, 2023'>
                        Lorem ipsum dolor sit, amet consectetur adipisicing elit. Velit,
                        ipsam.
                    </Post>
                    <Post
                        title='Article #666'
                        author='Jane Doe'
                        date='23rd June, 2023'
                        highlight>
                        Lorem ipsum dolor sit, amet consectetur adipisicing elit. Velit,
                        ipsam.
                    </Post>
                </section>
            );

            // const posts = (
            // 	<section>
            // 		<Post title='Article #666' author='Jane Doe' date='23rd June, 2023'>
            // 			Lorem ipsum dolor sit, amet consectetur adipisicing elit. Velit,
            // 			ipsam.
            // 		</Post>

            // 		{React.createElement(Post, {
            // 			title: 'Article #99',
            // 			author: 'John Doe',
            // 			date: '23rd July, 2023',
            // 			children:
            // 				'Lorem ipsum dolor sit, amet consectetur adipisicing elit. Velit, ipsam.',
            // 			link: '#',
            // 		})}

            // 		{Post({
            // 			title: 'Article #1',
            // 			author: 'John Doe',
            // 			date: '23rd July, 2023',
            // 			children:
            // 				'Lorem ipsum dolor sit, amet consectetur adipisicing elit. Velit, ipsam.',
            // 			link: '#',
            // 		})}
            // 		{Post({
            // 			title: 'Article #1',
            // 			author: 'John Doe',
            // 			date: '23rd July, 2023',
            // 			children:
            // 				'Lorem ipsum dolor sit, amet consectetur adipisicing elit. Velit, ipsam.',
            // 			link: '#',
            // 		})}
            // 	</section>
            // );

            // const container = (
            // 	<>
            // 		<p style={{ color: 'white', backgroundColor: 'gray' }}>
            // 			Lorem ipsum dolor sit amet consectetur adipisicing elit. Quibusdam,
            // 			laborum!
            // 		</p>
            // 		<p>
            // 			Lorem ipsum dolor sit amet consectetur adipisicing elit. Quibusdam,
            // 			laborum!
            // 		</p>
            // 	</>
            // );

            ReactDOM.render(posts, document.querySelector('#root'));
        </script>
    </body>
</html>
Learn this on the racks

Reading it is one thing. Configuring it is another.

Our batches run labs like this one end to end on real kit, in the Mumbai classroom or live online, taught by practicing engineers.