Skip to content

Instantly share code, notes, and snippets.

View vasanthv's full-sized avatar

vasanth vasanthv

View GitHub Profile
@vasanthv
vasanthv / extract.js
Created March 15, 2024 20:04 — forked from Sennahoi/extract.js
Extract bookmarks from a netscape bookmark file with node.js
var cheerio = require("cheerio"),
fs = require("fs");
fs.readFile('bookmarks.html', "utf-8", function read(err, data) {
if (err) {
throw err;
}
var $ = cheerio.load(data);
$("a").each(function(index, a) {
@vasanthv
vasanthv / timeago-short.js
Last active February 15, 2021 17:29
The short timeago function which return 1h, 1M, 2Y etc
const formatDate = (datestring) => {
const seconds = Math.floor((new Date() - new Date(datestring)) / 1000);
let interval = seconds / 31536000;
if (interval > 1) return Math.floor(interval) + "Y";
interval = seconds / 2592000;
if (interval > 1) return Math.floor(interval) + "M";
interval = seconds / 86400;
if (interval > 1) return Math.floor(interval) + "d";
interval = seconds / 3600;
if (interval > 1) return Math.floor(interval) + "h";
@vasanthv
vasanthv / capitalize.js
Created July 12, 2020 14:32
Captalize first letter of a string
const captilize = ([fL, ...rest]) => fL.toUpperCase()+rest.join("");
@vasanthv
vasanthv / mySubstring.js
Created November 18, 2019 08:19
Answer to cassidoo's Interview question "Implement the substring() function."
String.prototype.mySubstring = function(start, end) {
let substr = '';
for (i = (start || 0); i <= ((end || this.length) - 1); i++) {
substr += this[i];
}
return substr;
}
console.log("hello world!".mySubstring(1, 5)); // => ello
function isPrime(num) {
if (num > 2 && num % 2 === 0) return false;
for (var i = 3; i < Math.sqrt(num); i += 2) {
if (num % i === 0) return false;
}
return num > 1;
}
@vasanthv
vasanthv / allCombinationOfArrays.js
Last active May 30, 2019 07:28
A function to get all possible combination of arrays.
const arr = [ [ '8', '0', '5', '7', '9' ], [ '1', '2', '4' ] ]
const output = arr.reduce((a, b) => {
let ret = [];
a.forEach(i => b.forEach(j => ret.push(i + j)));
return ret;
});
// output = [ '81', '82', '84', '01', '02', '04', '51', '52', '54', '71', '72', '74', '91', '92', '94' ];
@vasanthv
vasanthv / factorial.js
Last active September 19, 2018 10:02
Get factorial of the given number
const factorial = (n) => (Array.from(Array(n), (_, i) => i + 1)).reduce((a, b) => a * b);
@vasanthv
vasanthv / get-combinations.js
Created May 7, 2018 07:40
Get combinations of all elements in an array with optional length filter.
//Based on https://stackoverflow.com/a/42531964
function combinations(array, length) {
const arr = new Array(1 << array.length).fill().map(
(e1, i) => array.filter((e2, j) => i & 1 << j));
return length ? arr.filter(a => a.length == length) : arr;
}
//console.log(combinations([1, 2, 3, 8, 10], 2));
const random = (i,j) => (Math.floor(Math.random() * (j - i)) + i);
@vasanthv
vasanthv / all-combinations.js
Created March 12, 2018 11:46
The function returns all possible combinations of a given number represented as array.
//Based on https://stackoverflow.com/a/46880431/607608
function getComb(set, val) {
const res = [];
function comb(set, k, partial, pref) {
if (!partial) partial = [];
for (const element in set) {
if (k > 1) {
const set_copy = set.slice();
set_copy.splice(element, 1);