diff --git a/index.html b/index.html
new file mode 100644
index 0000000..b7984e5
--- /dev/null
+++ b/index.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ 20220111 Assignment 2 by Llàtzer
+
+
+
+ hj
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hola
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/main.js b/main.js
new file mode 100644
index 0000000..024ca72
--- /dev/null
+++ b/main.js
@@ -0,0 +1,339 @@
+// variabless
+
+// 1. Declare 3 variables with the name of a, b and c. a has type of string, b has type of number, and c has type of number
+// a and b can not be re-assigned, c can be re-assigned
+// the variable value can be of your choice
+
+let a = "One";
+let b = 5;
+const c = 3;
+
+// 2. Write an if statement that has the following logic:
+// if the length of a is larger than 5, print "a has more than 5 characters" to console, else print "a has less than 5 characters"
+// if b is larger than 0 and smaller than 5, print "ping", else print "pong"
+// if c is larger than b, print "c is larger than b", else print "c is smaller than b"
+
+console.log(`Variables 2.1:`)
+if (a.length < 5) {
+ console.log(a,"has less than 5 characters");
+} else {
+ console.log(a,"has 5 characters or more");
+}
+
+console.log(`Variables 2.2:`)
+if (b > 0 && b < 5) {
+ console.log("ping");
+} else {
+ console.log("pong");
+}
+
+console.log(`Variables 2.3:`)
+if (c > b) {
+ console.log(`${c} is larger than ${b}`);
+} else {
+ console.log(`${c} is smaller than ${b}`);
+}
+
+// functions
+
+// 1. Write a function that will take 2 numbers as inputs, then return the sum of the 2 numbers.
+//function add() {}
+function add(a,b) {
+ return a + b;
+}
+document.getElementById("f1").innerHTML = `Function 1 (${b} + ${c}) = ` + add(b,c);
+
+// 2. Create a similar function as the above, but return the multiple of the 2 numbers.
+//function multiply() {}
+function multiply(a,b) {
+ return a * b;
+}
+document.getElementById("f2").innerHTML = `Function 2 (${b} * ${c}) = ` + multiply(b,c);
+
+// 3. Write a function that accepts a number as input, if the number is odd, return a string 'odd', if this number is even, return a string 'even'.
+//function oddOrEven() {}
+
+function oddOrEven(x) {
+ if (x % 2 != 0) {
+ return `Odd`;
+ } else {
+ return `Even`;
+ }
+}
+document.getElementById("f3").innerHTML = `Function 3: is ${b} odd or even? ` + oddOrEven(b)
+
+// 5. Fix this function. We want to see 2 in the console instead of undefined
+//function hoisting() {
+// console.log(y) // undefined
+// let y = 2
+//}
+
+console.log(`Function 5:`);
+function hoisting() {
+ let y = 2
+ console.log(y) // undefined
+}
+document.getElementById("f5").innerHTML = `Function 5: check console.`;
+hoisting()
+
+
+// 6. Write a count function that runs from 1 to 100 using for loop
+// if the current count is odd, print "odd", else print "even"
+
+let count = "";
+for (let i = 1; i < 101; i++) {
+ count = count + i + ` ` + oddOrEven(i) + "
";
+}
+document.getElementById("f6").innerHTML = `Function 6:` + "
" + count
+
+// 7. Write a function that accepts a string as an input, and return a new string with the first character uppercased
+// Ex: capitalized("abc") will return "Abc"
+//function capitalized() {}
+
+function myFunction() {
+ let text = document.getElementById("demo").innerHTML;
+ document.getElementById("demo").innerHTML =
+ text.toUpperCase();
+}
+
+let text = "abc";
+function capitalized(x){
+ return x[0].toUpperCase() + x.substring(1);
+}
+document.getElementById("f7").innerHTML = `Function 7: ` + capitalized(text);
+
+// 8. Write a function accepts a number as input and then return the number reversed
+// Ex: reverse(1234) will return 4321
+//function reverse() {}
+
+let number = 1234;
+function reverse(x) {
+ let toS = x.toString();
+ //console.log(toS);
+ let s = toS.split();
+ //console.log(s);
+ const splits = Array.from(toS);
+ let inv = splits.reverse();
+ //console.log(`inversed : ` + inv.join());
+ let join = inv.join();
+ let replace = join.replace(/,/g,"");
+ return replace
+}
+document.getElementById("f8").innerHTML = `Function 8: ` + reverse(number);
+
+// 9. Write a function accepts a string as input and checks if that string is a palindrome. A palindrome is word, phrase, or sequence that reads the same backward as forward, Ex: madam
+// if the string is a palindrome, return true, else return false
+//function isPalindrome() {}
+
+let word = "madam";
+function isPalindrome() {
+ let inv = reverse(word);
+ if (word == inv) {
+ return true
+ //return document.getElementById("f9-1").innerHTML = ` ${word} is a palindrome.`;
+ } else {
+ return false
+ //document.getElementById("f9-1").innerHTML = ` ${word} is not a palindrome.`
+ }
+}
+document.getElementById("f9").innerHTML = `Function 9: ` + isPalindrome(word);
+
+// 10. Write a JavaScript function that accepts two numbers and print the larger
+// Ex: printLarger(1,2) will console log 2 in the console
+//function printLarger() {}
+
+let num1 = 7;
+let num2 = 9;
+console.log(`Function 10:`)
+function printLarger(a,b) {
+ if ( a > b) {
+ console.log(`${num1} is larger than ${num2}`);
+ }
+ else if ( a < b) {
+ console.log(`${num2} is larger than ${num1}`);
+ }
+}
+printLarger(num1,num2);
+
+
+
+// 11. Write a JavaScript function to extract a specified number of characters from a string
+// Ex: extract("abcd", 2) will return "ab"
+// Ex: extract("abcd", 3) will return "abc"
+
+let text1 = "abcd"
+
+function extract(x,y) {
+ return x.substring(0,y);
+}
+document.getElementById("f11.a").innerHTML = `Function 11.a: ` + extract(text1,2);
+document.getElementById("f11.b").innerHTML = `Function 11.b: ` + extract(text1,3);
+
+// 12. Transform all of the above into arrow functions below here
+
+// 1. Write a function that will take 2 numbers as inputs, then return the sum of the 2 numbers.
+//function add() {}
+
+//12.1
+console.log(`12. Arrow Function 1:`)
+let add1 = (a,b) => a + b;
+
+document.getElementById("f12.1").innerHTML = `Function 12.1 (${b} + ${c}) = ` + add1(b,c);
+
+
+// 2. Create a similar function as the above, but return the multiple of the 2 numbers.
+//function multiply() {}
+
+//12.2
+console.log(`12. Arrow Function 2:`)
+
+let multiply1 = (a,b) => a * b;
+
+document.getElementById("f12.2").innerHTML = `Function 12.2 (${b} * ${c}) = ` + multiply1(b,c);
+
+
+
+// 3. Write a function that accepts a number as input, if the number is odd, return a string 'odd', if this number is even, return a string 'even'.
+//function oddOrEven() {}
+
+//12.3
+console.log(`12. Arrow Function 3:`)
+
+oddOrEven = x => {
+ if (x % 2 != 0) {
+ return `Odd`;
+ } else {
+ return `Even`;
+ }
+}
+//document.getElementById("f3").innerHTML = `Function 3: is ${b} odd or even? ` + oddOrEven(b)
+
+const funcio12_3 = document.querySelector("#f12_3");
+funcio12_3.textContent = 'Function 12_3:' + oddOrEven(b);
+
+
+
+// 5. Fix this function. We want to see 2 in the console instead of undefined
+//function hoisting() {
+// console.log(y) // undefined
+// let y = 2
+//}
+
+//12.5
+console.log(`12. Arrow Function 5:`)
+
+console.log(`Function 5:`);
+hoisting = () => {
+ let y = 2
+ console.log(y) // undefined
+}
+document.getElementById("f5").innerHTML = `Function 5: check console.`;
+hoisting()
+
+
+// 6. Write a count function that runs from 1 to 100 using for loop
+// if the current count is odd, print "odd", else print "even"
+
+//12.6
+console.log(`12. Arrow Function 5:`)
+
+let count1 = "";
+for (let i = 1; i < 101; i++) {
+ count1 = count1 + i + ` ` + oddOrEven(i) + "
";
+}
+document.getElementById("f6").innerHTML = `Function 6:` + "
" + count1
+
+// 7. Write a function that accepts a string as an input, and return a new string with the first character uppercased
+// Ex: capitalized("abc") will return "Abc"
+//function capitalized() {}
+
+//12.7
+console.log(`12. Arrow Function 7:`);
+
+let text2 = "abc";
+capitalized = x => {
+ return x[0].toUpperCase() + x.substring(1);
+}
+document.getElementById("f7").innerHTML = `Function 7: ` + capitalized(text2);
+
+// 8. Write a function accepts a number as input and then return the number reversed
+// Ex: reverse(1234) will return 4321
+//function reverse() {}
+
+//12.8
+console.log(`12. Arrow Function 8:`)
+
+let number1 = 1234;
+reverse = x => {
+ let toS = x.toString();
+ //console.log(toS);
+ let s = toS.split();
+ //console.log(s);
+ const splits = Array.from(toS);
+ let inv = splits.reverse();
+ //console.log(`inversed : ` + inv.join());
+ let join = inv.join();
+ let replace = join.replace(/,/g,"");
+ return replace
+}
+document.getElementById("f8").innerHTML = `Function 8: ` + reverse(number1);
+
+// 9. Write a function accepts a string as input and checks if that string is a palindrome. A palindrome is word, phrase, or sequence that reads the same backward as forward, Ex: madam
+// if the string is a palindrome, return true, else return false
+//function isPalindrome() {}
+
+//12.9
+console.log(`12. Arrow Function 9:`);
+
+let word1 = "madam";
+isPalindrome = () => {
+ let inv = reverse(word1);
+ if (word1 == inv) {
+ return true
+ //return document.getElementById("f9-1").innerHTML = ` ${word} is a palindrome.`;
+ } else {
+ return false
+ //document.getElementById("f9-1").innerHTML = ` ${word} is not a palindrome.`
+ }
+}
+document.getElementById("f9").innerHTML = `Function 9: ` + isPalindrome(word1);
+
+// 10. Write a JavaScript function that accepts two numbers and print the larger
+// Ex: printLarger(1,2) will console log 2 in the console
+//function printLarger() {}
+
+//12.10
+console.log(`12. Arrow Function 10:`);
+
+let num11 = 7;
+let num21 = 9;
+console.log(`Function 10:`)
+
+printLarger1 = (a,b) => {
+ if ( a > b) {
+ console.log(`${num11} is larger than ${num21}`);
+ }
+ else if ( a < b) {
+ console.log(`${num21} is larger than ${num11}`);
+ }
+}
+printLarger1(num11,num21);
+
+
+
+// 11. Write a JavaScript function to extract a specified number of characters from a string
+// Ex: extract("abcd", 2) will return "ab"
+// Ex: extract("abcd", 3) will return "abc"
+
+//12.11
+console.log(`12. Arrow Function 11:`);
+
+
+let text11 = "abcd"
+
+extract = (x,y) => {
+ return x.substring(0,y);
+}
+document.getElementById("f11.a").innerHTML = `Function 11.a: ` + extract(text11,2);
+document.getElementById("f11.b").innerHTML = `Function 11.b: ` + extract(text11,3);
+