From 513dcf2fb3e8db2e5433dfb4d1142fb2478640ef Mon Sep 17 00:00:00 2001 From: Pratik Yesane Date: Fri, 23 Aug 2024 16:12:59 +0530 Subject: [PATCH 1/8] Anagram Done --- 01-js/easy/anagram.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/01-js/easy/anagram.js b/01-js/easy/anagram.js index fff61427..bf36441f 100644 --- a/01-js/easy/anagram.js +++ b/01-js/easy/anagram.js @@ -8,7 +8,12 @@ */ function isAnagram(str1, str2) { - + console.log( + str1.split("").sort().join("") === str2.split("").sort().join("") + ? true + : false + ); } +isAnagram("bat", "tb"); module.exports = isAnagram; From 34ce9d6d23b9dd35879c60b09c2d46fc05f2c029 Mon Sep 17 00:00:00 2001 From: Pratik Yesane Date: Fri, 23 Aug 2024 16:42:23 +0530 Subject: [PATCH 2/8] Done --- 01-js/easy/expenditure-analysis.js | 42 +++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/01-js/easy/expenditure-analysis.js b/01-js/easy/expenditure-analysis.js index 20fbb943..d4bb0138 100644 --- a/01-js/easy/expenditure-analysis.js +++ b/01-js/easy/expenditure-analysis.js @@ -7,9 +7,49 @@ Once you've implemented the logic, test your code by running - `npm run test-expenditure-analysis` */ +const items = [ + { + itemName: "Mobile Phone", + category: "Electronics", + price: 100, + timestamp: Date.now(), + }, + { + itemName: "Shirt1", + category: "Cloths", + price: 500, + timestamp: Date.now(), + }, + { + itemName: "Shirt2", + category: "Cloths", + price: 1100, + timestamp: Date.now(), + }, + { + itemName: "Bed", + category: "Furniture", + price: 200, + timestamp: Date.now(), + }, +]; function calculateTotalSpentByCategory(transactions) { - return []; + const cateoryTotalAmount = {}; + + transactions.forEach((transaction) => { + const { category, price } = transaction; + if (category in cateoryTotalAmount) { + cateoryTotalAmount[category] += price; + } else { + cateoryTotalAmount[category] = price; + } + }); + + return Object.keys(cateoryTotalAmount).map((category) => ({ + [category]: cateoryTotalAmount[category], + })); } +console.log(calculateTotalSpentByCategory(items)); module.exports = calculateTotalSpentByCategory; From e81558ed43daead765308d94c10fe1370e59660e Mon Sep 17 00:00:00 2001 From: Pratik Yesane Date: Fri, 23 Aug 2024 17:37:13 +0530 Subject: [PATCH 3/8] Done --- 01-js/medium/palindrome.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/01-js/medium/palindrome.js b/01-js/medium/palindrome.js index d8fe2d8f..c5d864a7 100644 --- a/01-js/medium/palindrome.js +++ b/01-js/medium/palindrome.js @@ -7,7 +7,10 @@ */ function isPalindrome(str) { - return true; + str = str.toLowerCase(); + return str === str.split("").reverse().join(""); } +console.log(isPalindrome("Hannah")); + module.exports = isPalindrome; From 27836e3a6c582d296c57a0284ff1822dedc36e68 Mon Sep 17 00:00:00 2001 From: Pratik Yesane Date: Fri, 23 Aug 2024 18:01:35 +0530 Subject: [PATCH 4/8] Done --- 01-js/medium/times.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/01-js/medium/times.js b/01-js/medium/times.js index eb125cc2..4ed3111b 100644 --- a/01-js/medium/times.js +++ b/01-js/medium/times.js @@ -7,6 +7,19 @@ Try running it for Hint - use Date class exposed in JS */ +const s = new Date(); +let sec = s.getSeconds(); + function calculateTime(n) { - return 0.01; -} \ No newline at end of file + let start = new Date().getTime(); + let sum = 0; + for (let i = 1; i <= n; i++) { + sum += i; + } + console.log(sum); + let end = new Date().getTime(); + let time = (end - start) / 1000; + return time; +} + +console.log(calculateTime(1000000000)); From 2abde9dbc8c3d25d902c5b37d1cf92c4cfce31a5 Mon Sep 17 00:00:00 2001 From: Pratik Yesane Date: Fri, 23 Aug 2024 18:49:12 +0530 Subject: [PATCH 5/8] Done --- 02-async-js/easy/counter.js | 7 +++++++ 02-async-js/easy/counter2.js | 10 ++++++++++ 2 files changed, 17 insertions(+) create mode 100644 02-async-js/easy/counter.js create mode 100644 02-async-js/easy/counter2.js diff --git a/02-async-js/easy/counter.js b/02-async-js/easy/counter.js new file mode 100644 index 00000000..fde2d9d2 --- /dev/null +++ b/02-async-js/easy/counter.js @@ -0,0 +1,7 @@ +let counter = 0; + +setInterval(() => { + console.clear(); + counter++; + console.log(counter); +}, 1000); \ No newline at end of file diff --git a/02-async-js/easy/counter2.js b/02-async-js/easy/counter2.js new file mode 100644 index 00000000..4c05e7ce --- /dev/null +++ b/02-async-js/easy/counter2.js @@ -0,0 +1,10 @@ +let counter = 0; + +function run() { + console.clear(); + counter++; + console.log(counter); + setTimeout(run, 1000); +} + +run(); From 4dbd97380929a5c68879e257e78e193a6f321383 Mon Sep 17 00:00:00 2001 From: Pratik Yesane Date: Fri, 23 Aug 2024 19:03:39 +0530 Subject: [PATCH 6/8] Done --- 02-async-js/easy/readfile.js | 6 ++++++ 02-async-js/easy/writefile.js | 6 ++++++ 2 files changed, 12 insertions(+) create mode 100644 02-async-js/easy/readfile.js create mode 100644 02-async-js/easy/writefile.js diff --git a/02-async-js/easy/readfile.js b/02-async-js/easy/readfile.js new file mode 100644 index 00000000..b5e05410 --- /dev/null +++ b/02-async-js/easy/readfile.js @@ -0,0 +1,6 @@ +const fs = require("fs"); + +fs.readFile("./text.txt", "utf8", (err, data) => { + if (err) throw err; + console.log(data); +}); diff --git a/02-async-js/easy/writefile.js b/02-async-js/easy/writefile.js new file mode 100644 index 00000000..3b35c25f --- /dev/null +++ b/02-async-js/easy/writefile.js @@ -0,0 +1,6 @@ +const fs = require("fs"); + +fs.writeFile("./text.txt", "This is the change", "utf8", (err) => { + if (err) throw err; + console.log("done"); +}); From 07f52e9f98562132c34449a8c56b6952ea757971 Mon Sep 17 00:00:00 2001 From: Pratik Yesane Date: Fri, 23 Aug 2024 19:39:24 +0530 Subject: [PATCH 7/8] Done --- 01-js/hard/calculator.js | 8 +++++++- 02-async-js/medium/file-cleaner.js | 26 ++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 02-async-js/medium/file-cleaner.js diff --git a/01-js/hard/calculator.js b/01-js/hard/calculator.js index 82d48229..60ad6e85 100644 --- a/01-js/hard/calculator.js +++ b/01-js/hard/calculator.js @@ -17,6 +17,12 @@ - `npm run test-calculator` */ -class Calculator {} +class Calculator { + constructor(result) { + this.result = result; + } + + +} module.exports = Calculator; diff --git a/02-async-js/medium/file-cleaner.js b/02-async-js/medium/file-cleaner.js new file mode 100644 index 00000000..e887eb1f --- /dev/null +++ b/02-async-js/medium/file-cleaner.js @@ -0,0 +1,26 @@ +// ## File cleaner +// Read a file, remove all the extra spaces and write it back to the same file. + +// For example, if the file input was +// ``` +// hello world my name is raman +// ``` + +// After the program runs, the output should be + +// ``` +// hello world my name is raman +// ``` + +const fs = require("fs"); + +fs.readFile("./text.txt", "utf8", (err, data) => { + if (err) console.log(err); + data = data.replace(/\s+/g, " ").trim(); + console.log(data); + + fs.writeFile("./text.txt", data, "utf8", (err) => { + if (err) console.log(err); + console.log(data); + }); +}); From e74e55f0975ae95b2292588979480026d6d7fad5 Mon Sep 17 00:00:00 2001 From: Pratik Yesane Date: Sat, 24 Aug 2024 10:50:19 +0530 Subject: [PATCH 8/8] Done --- 01-js/easy/expenditure-analysis.js | 3 ++- 01-js/medium/times.js | 4 +++- 02-async-js/easy/counter.js | 5 +++-- 02-async-js/easy/counter2.js | 4 ++-- 02-async-js/medium/clock.js | 23 +++++++++++++++++++++++ 02-async-js/medium/file-cleaner.js | 9 +++++++-- 02-async-js/medium/text.txt | 1 + 7 files changed, 41 insertions(+), 8 deletions(-) create mode 100644 02-async-js/medium/clock.js create mode 100644 02-async-js/medium/text.txt diff --git a/01-js/easy/expenditure-analysis.js b/01-js/easy/expenditure-analysis.js index d4bb0138..feb9bde2 100644 --- a/01-js/easy/expenditure-analysis.js +++ b/01-js/easy/expenditure-analysis.js @@ -39,7 +39,7 @@ function calculateTotalSpentByCategory(transactions) { transactions.forEach((transaction) => { const { category, price } = transaction; - if (category in cateoryTotalAmount) { + if (cateoryTotalAmount[category]) { cateoryTotalAmount[category] += price; } else { cateoryTotalAmount[category] = price; @@ -52,4 +52,5 @@ function calculateTotalSpentByCategory(transactions) { } console.log(calculateTotalSpentByCategory(items)); + module.exports = calculateTotalSpentByCategory; diff --git a/01-js/medium/times.js b/01-js/medium/times.js index 4ed3111b..39a72207 100644 --- a/01-js/medium/times.js +++ b/01-js/medium/times.js @@ -12,14 +12,16 @@ let sec = s.getSeconds(); function calculateTime(n) { let start = new Date().getTime(); + let sum = 0; for (let i = 1; i <= n; i++) { sum += i; } console.log(sum); + let end = new Date().getTime(); let time = (end - start) / 1000; return time; } -console.log(calculateTime(1000000000)); +console.log(calculateTime(10000)); diff --git a/02-async-js/easy/counter.js b/02-async-js/easy/counter.js index fde2d9d2..3ad5ca76 100644 --- a/02-async-js/easy/counter.js +++ b/02-async-js/easy/counter.js @@ -1,7 +1,8 @@ let counter = 0; -setInterval(() => { +function setCounter() { console.clear(); counter++; console.log(counter); -}, 1000); \ No newline at end of file +} +setInterval(setCounter, 1000); diff --git a/02-async-js/easy/counter2.js b/02-async-js/easy/counter2.js index 4c05e7ce..aa05392f 100644 --- a/02-async-js/easy/counter2.js +++ b/02-async-js/easy/counter2.js @@ -2,9 +2,9 @@ let counter = 0; function run() { console.clear(); - counter++; console.log(counter); - setTimeout(run, 1000); + counter++; + setTimeout(run, 1 * 1000); } run(); diff --git a/02-async-js/medium/clock.js b/02-async-js/medium/clock.js new file mode 100644 index 00000000..d159f1c4 --- /dev/null +++ b/02-async-js/medium/clock.js @@ -0,0 +1,23 @@ +function printTime() { + var time = new Date(); + var format = time.getHours() > 12 ? "PM" : "AM"; + + var hours = time.getHours(); + hours = hours > 12 ? hours - 12 : hours; + + var mintue = time.getMinutes(); + mintue = mintue < 10 ? "0" + mintue : mintue; + + var sec = time.getSeconds(); + sec = sec < 10 ? "0" + sec : sec; + + const ans = hours + ":" + mintue + ":" + sec + " " + format; + console.log(ans); +} + +function clock() { + console.clear(); + printTime(); +} + +setInterval(clock, 1000); diff --git a/02-async-js/medium/file-cleaner.js b/02-async-js/medium/file-cleaner.js index e887eb1f..6a5bae54 100644 --- a/02-async-js/medium/file-cleaner.js +++ b/02-async-js/medium/file-cleaner.js @@ -14,10 +14,15 @@ const fs = require("fs"); +function clean(data) { + data = data.replace(/\s+/g, " ").trim(); + return data; +} + fs.readFile("./text.txt", "utf8", (err, data) => { if (err) console.log(err); - data = data.replace(/\s+/g, " ").trim(); - console.log(data); + data = clean(data); + // console.log(data); fs.writeFile("./text.txt", data, "utf8", (err) => { if (err) console.log(err); diff --git a/02-async-js/medium/text.txt b/02-async-js/medium/text.txt new file mode 100644 index 00000000..09f1387c --- /dev/null +++ b/02-async-js/medium/text.txt @@ -0,0 +1 @@ +asda asd d ads as asd as dadasd \ No newline at end of file