Skip to content

Instantly share code, notes, and snippets.

View dragonza's full-sized avatar

Alex Vuong dragonza

View GitHub Profile
@dragonza
dragonza / cap.js
Created March 24, 2018 18:17
Sentence Capitalization
function capitalize(str) {
let result = str[0].toUpperCase();
for (let i = 1; i < str.length; i++) {
if (str[i - 1] === ' ') {
result += str[i].toUpperCase();
} else {
result += str[i];
}
}
@dragonza
dragonza / cap.js
Created March 24, 2018 18:12
Sentence Capitalization
function capitalize(str) {
let result = '';
for (let word of str.split(' ')) {
result += word[0].toUpperCase() + word.slice(1) + ' ';
}
return result.trim();
}
@dragonza
dragonza / cap.js
Created March 24, 2018 18:07
Sentence Capitalization
function capitalize(str) {
const arr = str.split(' ');
return arr.map(word => {
return word[0].toUpperCase() + word.slice(1);
}).join(' ');
}
@dragonza
dragonza / anagrams.js
Created March 4, 2018 10:18
Anagrams
function anagrams(stringA, stringB) {
return cleanString(stringA) === cleanString(stringB);
}
function cleanString(str) {
return str.replace(/[^\w]/g, '').toLowerCase().split('').sort().join('');
}
@dragonza
dragonza / anagrams.js
Created March 4, 2018 10:03
Anagrams
function anagrams(stringA, stringB) {
const aCharMap = charMap(stringA.replace(/[^\w]/g, '').toLowerCase());
const bCharMap = charMap(stringB.replace(/[^\w]/g, '').toLowerCase());
// return false immediately when the length of two char Map is not the same
if (Object.keys(aCharMap).length !== Object.keys(bCharMap).length) {
return false;
}
// comparison
@dragonza
dragonza / chunk.js
Last active May 12, 2019 17:25
Chunk array
function chunk(array, size) {
if (!array) return [];
const firstChunk = array.slice(0, size); // create the first chunk of the given array
if (!firstChunk.length) {
return array; // this is the base case to terminal the recursive
}
return [firstChunk].concat(chunk(array.slice(size, array.length), size));
}
/*
@dragonza
dragonza / chunk.js
Created February 19, 2018 11:05
Chunk array
function chunk(array, size) {
const chunked_arr = [];
let index = 0;
while (index < array.length) {
chunked_arr.push(array.slice(index, size + index));
index += size;
}
return chunked_arr;
}
@dragonza
dragonza / chunk.js
Last active February 19, 2018 10:49
Chunk array
function chunk(array, size) {
const chunked_arr = [];
let copied = [...array]; // ES6 destructuring
const numOfChild = Math.ceil(copied.length / size); // Round up to the nearest integer
for (let i = 0; i < numOfChild; i++) {
chunked_arr.push(copied.splice(0, size));
}
return chunked_arr;
}
@dragonza
dragonza / chunk.js
Last active July 10, 2020 17:15
Chunk array
function chunk(array, size) {
const chunked_arr = [];
for (let i = 0; i < array.length; i++) {
const last = chunked_arr[chunked_arr.length - 1];
if (!last || last.length === size) {
chunked_arr.push([array[i]]);
} else {
last.push(array[i]);
}
}
@dragonza
dragonza / maxChar.js
Created February 12, 2018 18:01
Find commonly used character
function maxChar(str) {
const obj = {};
str.split('').forEach(char => obj[char] + 1 || 1);
return Object.keys(obj).reduce((prev, next) => obj[a] >= obj[b] ? a : b);
}