JavaScript-snippets
JSsnippets on Facebook
find us on Facebook
How to generate a random number in a given range
// Returns a random number(float) between min (inclusive) and max (exclusive)
const getRandomNumber = (min, max) => Math.random() * (max - min) + min;
getRandomNumber(2, 10)
// Returns a random number(int) between min (inclusive) and max (inclusive)
const getRandomNumberInclusive =(min, max)=> {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}
getRandomNumberInclusive(2, 10);
How to find the difference between two arrays.
const firstArr = [5, 2, 1];
const secondArr = [1, 2, 3, 4, 5];
const diff = [
...secondArr.filter(x => !firstArr.includes(x)),
...firstArr.filter(x => !secondArr.includes(x))
];
console.log('diff',diff) //[3,4]
function arrayDiff(a, b) {
return [
...a.filter(x => b.indexOf(x) === -1),
...b.filter(x => a.indexOf(x) === -1)
]
}
console.log('arrayDiff',arrayDiff(firstArr, secondArr)) //[3,4]
const difference = (a, b) => {
const setA = new Set(a);
const setB = new Set(b);
return [
...a.filter(x => !setB.has(x)),
...b.filter(x => !setA.has(x))
]
};
difference(firstArr, secondArr); //[3,4]
console.log('difference',difference(firstArr, secondArr))
How to convert truthy/falsy to boolean(true/false)
const myVar = null;
const mySecondVar = 1;
console.log( Boolean(myVar) ) // false
console.log( !!myVar ) // false
console.log( Boolean(mySecondVar) ) // true
console.log( !!mySecondVar ) // true
How to repeat a string
let aliens = '';
for(let i = 0 ; i < 6 ; i++){
aliens += '👽'
}
//👽👽👽👽👽👽
Array(6).join('👽')
//👽👽👽👽👽👽
'👽'.repeat(6)
//👽👽👽👽👽👽
Check how long an operation takes
//The performance.now() method returns a DOMHighResTimeStamp, measured in milliseconds.
//performance.now() is relative to page load and more precise in orders of magnitude.
//Use cases include benchmarking and other cases where a high-resolution time is required
//such as media (gaming, audio, video, //etc.)
var startTime = performance.now();
doSomething();
const endTime = performance.now();
console.log("this doSomething took " + (endTime - startTime) + " milliseconds.");
Two ways to remove an item in a specific in an array
//Mutating way
const muatatedArray = ['a','b','c','d','e'];
muatatedArray.splice(2,1)
console.log(muatatedArray) //['a','b','d','e']
//Non-mutating way
const nonMuatatedArray = ['a','b','c','d','e'];
const newArray = nonMuatatedArray.filter((item'index) => !( index === 2 ));
console.log(newArray) //['a','b','d','e']
Did you know you can flat an array?
const myArray = [2, 3, [4, 5],[7,7, [8, 9, [1, 1]]]];
myArray.flat() // [2, 3, 4, 5 ,7,7, [8, 9, [1, 1]]]
myArray.flat(1) // [2, 3, 4, 5 ,7,7, [8, 9, [1, 1]]]
myArray.flat(2) // [2, 3, 4, 5 ,7,7, 8, 9, [1, 1]]
//if you dont know the depth of the array you can use infinity
myArray.flat(infinity) // [2, 3, 4, 5 ,7,7, 8, 9, 1, 1];
Get unique values in an array
const numbers = [1,1,3,2,5,3,4,7,7,7,8];
//Ex1
const unieqNumbers = numbers.filter((v,i,a) => a.indexOf(v )=== i )
console.log(unieqNumbers) //[1,3,2,5,4,7,8]
//Ex2
const unieqNumbers2 = Array.from(new Set(numbers))
console.log(unieqNumbers2) //[1,3,2,5,4,7,8]
//Ex3
const unieqNumbers3 = [...new Set(numbers)]
console.log(unieqNumbers3) //[1,3,2,5,4,7,8]
//EX4 lodash
const unieqNumbers4 = _.uniq(numbers)
console.log(unieqNumbers4) //[1,3,2,5,4,7,8]
Copy Text to Clipboard
function copyToClipboard() {
const copyText = document.getElementById("myInput");
copyText.select();
document.execCommand("copy");
}
//new API
function copyToClipboard(){
navigator.clipboard.writeText(document.querySelector('#myInput').value)
}
Nested Destructuring
const user = {
id: 459,
name: 'JS snippets',
age:29,
education:{
degree: 'Masters'
}
}
const { education : { degree } }
console.log(degree) //Masters