Skip to content

Instantly share code, notes, and snippets.

@gibo
Created August 22, 2019 14:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gibo/6ebcdd36cb437a1ec3887f271fd3d20e to your computer and use it in GitHub Desktop.
Save gibo/6ebcdd36cb437a1ec3887f271fd3d20e to your computer and use it in GitHub Desktop.
// ** check for validate parenthesis
const isValidParenthesis = str => {
let brackets = 0;
for (let i = 0; i < str.length; i++) {
if (str.charAt(i) === "(") {
brackets++;
} else if (str.charAt(i) === ")") {
brackets--;
} else {
return false;
}
}
return brackets === 0;
};
// ** flatten array
const flatten = (arr, result = []) => {
arr.forEach(element => {
if (Array.isArray(element)) {
flatten(element, result);
} else {
result.push(element);
}
});
return result;
};
// ** random ids
const generateRandomId = () => {
const getRandomElementFromArray = arr => {
return arr[Math.floor(Math.random() * arr.length)];
};
const characters = [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9"
];
const part1 = `${getRandomElementFromArray(
characters
)}${getRandomElementFromArray(characters)}${getRandomElementFromArray(
characters
)}`;
const part2 = `${getRandomElementFromArray(
characters
)}${getRandomElementFromArray(characters)}${getRandomElementFromArray(
characters
)}`;
const part3 = `${getRandomElementFromArray(
characters
)}${getRandomElementFromArray(characters)}${getRandomElementFromArray(
characters
)}`;
return `${part1}-${part2}-${part3}`;
};
const arrayUnique = arr => {
return arr.filter((item, index) => {
return arr.indexOf(item) >= index;
});
};
// generate 1000 random ids
let ids = [];
for (let i = 0; i < 1000; i++) {
ids.push(generateRandomId());
}
// ids.length === 1000
// find unique ids in 'ids' array but removing all duplicates, arrayUnique(ids).length
// find percentage of duplicates
console.log((ids.length / arrayUnique(ids).length) * 100);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment