Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions Conversions/HexToBase64.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
//Hex Encoding to base64
//Example: Hex=12c13f1d313c315cf313513d13; =====> Base64=EsE/HTE8MVzzE1E9Ew==;

function hexToBase64 (hex) {
const hexToBase64 = hex => Buffer.from(hex, 'hex').toString('base64');
}
console.log('the result is ' + hexToBase64);
}
107 changes: 107 additions & 0 deletions Conversions/RomanToDecimalToRoman.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
// Convert from roman Number to decimal and Vice Versa

var RomanNumerals = {
toRoman: function (number) {
var ret = ''
while (number > 0) {
if (number / 1000 >= 1) {
ret += 'M'
number -= 1000
} else if (number / 900 >= 1) {
ret += 'CM'
number -= 900
} else if (number / 500 >= 1) {
ret += 'D'
number -= 500
} else if (number / 400 >= 1) {
ret += 'CD'
number -= 400
} else if (number / 100 >= 1) {
ret += 'C'
number -= 100
} else if (number / 90 >= 1) {
ret += 'XC'
number -= 90
} else if (number / 50 >= 1) {
ret += 'L'
number -= 50
} else if (number / 40 >= 1) {
ret += 'XL'
number -= 40
} else if (number / 10 >= 1) {
ret += 'X'
number -= 10
} else if (number / 9 >= 1) {
ret += 'IX'
number -= 9
} else if (number / 5 >= 1) {
ret += 'V'
number -= 5
} else if (number / 4 >= 1) {
ret += 'IV'
number -= 4
} else if (number / 1 >= 1) {
ret += 'I'
number -= 1
}
}
return ret
},
fromRoman: function (str) {
var ret = 0
while (str.length > 0) {
switch (str.charAt(0)) {
case 'M':
str = str.slice(1)
ret += 1000
break
case 'D':
str = str.slice(1)
ret += 500
break
case 'L':
str = str.slice(1)
ret += 50
break
case 'C':
if (str.charAt(1) === 'M') {
str = str.slice(2)
ret += 900
} else if (str.charAt(1) === 'D') {
str = str.slice(2)
ret += 400
} else {
str = str.slice(1)
ret += 100
} break
case 'X':
if (str.charAt(1) === 'C') {
str = str.slice(2)
ret += 90
} else if (str.charAt(1) === 'L') {
str = str.slice(2)
ret += 40
} else {
str = str.slice(1)
ret += 10
} break
case 'V':
str = str.slice(1)
ret += 5
break
case 'I':
if (str.charAt(1) === 'X') {
str = str.slice(2)
ret += 9
} else if (str.charAt(1) === 'V') {
str = str.slice(2)
ret += 4
} else {
str = str.slice(1)
ret += 1
} break
}
}
return ret
}
}
19 changes: 19 additions & 0 deletions String/DomainNameExtractor.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// domainName("http://github.com/TheAlgorithms") == "github"
function domainName (url) {
var domain
if (url.indexOf('://') > -1) {
domain = url.split('/')[2]
} else {
domain = url.split('/')[0]
}

if (domain.indexOf('www.') > -1) {
domain = domain.split('www.')[1]
}

domain = domain.split(':')[0]
domain = domain.split('?')[0]
domain = domain.split('.')[0]

return domain
}
12 changes: 12 additions & 0 deletions String/WordsToSentence.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// Example wordToSentence(['cat', 'dog', 'mouse']) // should return "cat, dog and mouse"
function wordToSentence(words){
if(!words) return '';
words = words.filter((word) => word.length);
let formated = '';
for(let i=0; i<words.length; i++) {
if(i === words.length - 1 && i > 0) formated += ` and `;
else if (i > 0) formated += `, `;
formated += words[i];
}
return formated;
}