Last active
August 16, 2016 15:38
-
-
Save yosevu/368febecc9f454b07e907dd965147b0a to your computer and use it in GitHub Desktop.
function exercises from http://www.w3resource.com/javascript-exercises/javascript-functions-exercises.php
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| //7 | |
| function countVowels(string) { | |
| var letters = string.split(''); | |
| var vowels = "aeiou"; | |
| var vowelIndex; | |
| var vowel; | |
| var vowelCount = 0; | |
| var i = 0; | |
| while (i < vowels.length) { | |
| if (letters.includes(vowels[i]) === true) { | |
| // Is this: | |
| vowelIndex = letters.indexOf(vowels[i]); | |
| vowel = letters.splice(vowelIndex, 1); | |
| // Better than this: | |
| // vowel = letters.splice(letters.indexOf(vowels[i]), 1); | |
| vowelCount++; | |
| } | |
| else { | |
| i++; | |
| } | |
| } | |
| console.log(vowelCount); | |
| } | |
| countVowels("The quick brown fox"); | |
| // 8 | |
| function checkPrime(num) { | |
| var i = 3; | |
| if (num != 2 && num % 2 == 0 || num < 2) { | |
| return "not prime"; | |
| } | |
| else { | |
| while (i < num) { | |
| if (num % i == 0) { | |
| return "not prime"; | |
| } | |
| else { | |
| i += 2 | |
| } | |
| } | |
| } | |
| return "prime"; | |
| } | |
| console.log(checkPrime(1)); | |
| console.log(checkPrime(97)); | |
| console.log(checkPrime(49)); | |
| console.log(checkPrime(2)); | |
| // 12 | |
| // v1 Sum of proper positive divisors | |
| function checkPerfectNumber(num) { | |
| var sum = 0; | |
| for (var i = 1; i < num; i++) { | |
| if (num % i == 0) { | |
| sum += i; | |
| } | |
| } | |
| if (sum == num && num != 0) { | |
| return "perfect"; | |
| } | |
| else { | |
| return "not perfect"; | |
| } | |
| } | |
| // v2 Half sum of all positive divisors | |
| function checkPerfectNumber(num) { | |
| var i = 1; | |
| var check = 0; | |
| while (i <= num) { | |
| if (num % i == 0) { | |
| check += i; | |
| } | |
| i++; | |
| } | |
| if (check / 2 == num && num != 0) { | |
| return "perfect"; | |
| } | |
| else { | |
| return "not perfect"; | |
| } | |
| } | |
| console.log(checkPerfectNumber(0)); | |
| console.log(checkPerfectNumber(1)); | |
| console.log(checkPerfectNumber(6)); | |
| console.log(checkPerfectNumber(28)); | |
| console.log(checkPerfectNumber(496)); | |
| console.log(checkPerfectNumber(2389)); | |
| console.log(checkPerfectNumber(8128)); | |
| // 17 | |
| function countLetters(string) { | |
| var letters = string.split(''); | |
| var i; | |
| var currentLetter; | |
| var letterCounts = {}; | |
| while (letters.length > 0) { | |
| i = 0; | |
| currentLetter = letters[i]; | |
| while (letters.includes(currentLetter)) { | |
| if (letterCounts[currentLetter] == undefined) { | |
| letterCounts[currentLetter] = 1; | |
| } | |
| else { | |
| letterCounts[currentLetter] += 1; | |
| } | |
| // letters.splice(i, 1); // Mistake | |
| letters.splice(letters.indexOf(currentLetter), 1); // fixed | |
| } | |
| } | |
| console.log(letterCounts); | |
| } | |
| countLetters("dcbcdbcdacdd"); | |
| // 24 | |
| function bubbleSort(numbers) { | |
| var i = 0; | |
| var j; | |
| var holdValue; | |
| while (i < numbers.length) { | |
| j = 0; | |
| while (j < numbers.length) { | |
| if (numbers[j] > numbers[j + 1]) { | |
| holdValue = numbers[j]; | |
| numbers[j] = numbers[j + 1]; | |
| numbers[j+1] = holdValue | |
| } | |
| j++; | |
| } | |
| i++; | |
| } | |
| console.log(numbers); | |
| } | |
| bubbleSort([27, 29, 31, 36, 2014, 2012, 11, 17, -0.1, 4, 2016, 1.99, 40, 120.96]); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment