Skip to content

Instantly share code, notes, and snippets.

@arviantodwi
arviantodwi / sumBigNumber.js
Created January 10, 2021 17:17
Sum big number that greater than MAX_SAFE_INTEGER
const toArray = (str) => Array.from (str, (n) => parseInt (n, 10));
const sumStrings = (a,b) => {
a = toArray (a).reverse ();
b = toArray (b).reverse ();
if (a.length < b.length) [a, b] = [b, a];
if (a.length != b.length) b = [...b, ...new Array (a.length - b.length).fill (0)];
const result = [];
for (let i = 0; i < a.length; i += 1) {
@arviantodwi
arviantodwi / reverse.js
Created January 8, 2021 20:27
Reverse a String in Javascript
// 1. Using for loop
const reverseFor = (str) => {
let reversed = '';
for (var i = str.length - 1; i >= 0; i -= 1) {
reversed += str[i];
}
return reversed;
}
// 1.1. Using ES6 for..of loop
@arviantodwi
arviantodwi / MathHelpers.js
Created January 5, 2021 20:50
Math Helpers
// Check if number is prime
const isPrime = (n) => {
for (let i = 2; Math.pow (i, 2) <= n; i += 1) {
if (n % i === 0) return false;
}
return true;
}
// Find GCD (Greatest Common Divisor)
const gcd = (a, b) => {
@arviantodwi
arviantodwi / init-gh-pages.sh
Last active December 27, 2020 00:07
Create clean gh-pages branch
$ git checkout --orphan gh-pages
$ git reset --hard
$ git commit --allow-empty -m "🎉 Initialize gh-pages branch"
$ git push origin gh-pages
$ git checkout master
@arviantodwi
arviantodwi / smoothScroll.js
Last active January 8, 2021 20:33
Vanilla JS smooth scroll when clicking an element
/**
* Use it like <a data-destination="element-id" onclick="smoothScroll(this, this.dataset.destination)" />
*/
function smoothScroll (trigger, destinationId) {
var target = document.getElementById(destinationId);
function yCurrent () {
if (self.pageYOffset) {
return self.pageYOffset;