add stuff

This commit is contained in:
Adam 2024-01-12 07:01:06 -05:00
parent adb1e760b7
commit b3e31318a3
12 changed files with 179 additions and 0 deletions

9
addTogether.js Normal file
View file

@ -0,0 +1,9 @@
function addTogether() {
const arr = Array.from(arguments);
return arr.some(n => typeof n !== "number")
? undefined
: arr.length > 1
? arr.reduce((a, b) => a + b)
: n => (typeof n === "number" ? n + arr[0] : undefined);
}
console.log(addTogether(5)(7));

16
binaryAgent.js Normal file
View file

@ -0,0 +1,16 @@
function binaryAgent(str) {
const binaries = str.split(' ');
const chars = []
for (let bin of binaries) {
chars.push(String.fromCharCode(Number.parseInt(bin, 2)))
}
const charString = chars.toString();
return charString.replaceAll(',','');
}
console.log(binaryAgent(
"01000001 01110010 01100101 01101110 00100111 01110100 00100000 01100010 01101111 01101110 01100110 01101001 01110010 01100101 01110011 00100000 01100110 01110101 01101110 00100001 00111111"
));
// console.log(Number.parseInt('01000001'));

12
dropIt.js Normal file
View file

@ -0,0 +1,12 @@
function dropElements(arr, func) {
if (arr.findIndex(func) === -1) {
return [];
}
return arr.slice(arr.findIndex(func));
}
console.log(
dropElements([1, 2, 3], function (n) {
return n >= 5;
})
);

15
eratosthenes.js Normal file
View file

@ -0,0 +1,15 @@
function sumPrimes(num) {
const isPrime = Array(num + 1).fill(true);
isPrime[0] = false;
isPrime[1] = false;
for (let prime = 2; prime < Math.sqrt(num); prime++) {
if (isPrime[prime]) {
for (let multiple = prime * prime; multiple <= num; multiple += prime) {
isPrime[multiple] = false;
}
}
}
return isPrime.reduce((sum, prime, index) => (prime ? sum + index : sum), 0);
// return isPrime;
}
console.log(sumPrimes(10000000));

10
euclidian.js Normal file
View file

@ -0,0 +1,10 @@
function smallestCommons(arr) {
const [min, max] = arr.sort((a, b) => a - b);
const range = Array(max - min + 1)
.fill(0)
.map((_, i) => i + min);
const gcd = (a, b) => (b === 0 ? a : gcd(b, a % b));
const lcm = (a, b) => (a * b) / gcd(a, b);
return range.reduce((mul, cur) => lcm(mul, cur));
}
console.log(smallestCommons([2, 10]));

28
makePerson.js Normal file
View file

@ -0,0 +1,28 @@
class Person {
constructor(firstAndLast) {
let fullName = firstAndLast;
this.getFullName = function () {
return fullName;
};
this.getFirstName = function () {
return fullName.split(' ')[0];
};
this.getLastName = function () {
return fullName.split(' ')[1];
};
this.setFirstName = function (name) {
return fullName = name + ' ' + this.getLastName();
};
this.setLastName = function (name) {
return fullName = this.getFirstName() + ' ' + name;
};
this.setFullName = function (name) {
return fullName = name;
};
// return firstAndLast;
}
}
const bob = new Person('Bob Ross');
console.log(bob.getFullName());

11
mapDebris.js Normal file
View file

@ -0,0 +1,11 @@
function orbitalPeriod(arr) {
var GM = 398600.4418;
var earthRadius = 6367.4447;
arr.forEach(element => {
element.orbitalPeriod = Math.round(2 * Math.PI * Math.sqrt(Math.pow(earthRadius + element.avgAlt, 3) / GM));
delete element.avgAlt;
});
return arr;
}
console.log(orbitalPeriod([{name : "sputnik", avgAlt : 35873.5553}]));

8
palindromes.js Normal file
View file

@ -0,0 +1,8 @@
function palindrome(str) {
const upper = str.toUpperCase();
const letters = upper.match(/[A-Z0-9]/g);
if (letters.toString() === letters.reverse().toString()) return true;
else return false;
}
console.log(palindrome("e_ye 3"));

30
romanNums.js Normal file
View file

@ -0,0 +1,30 @@
function convertToRoman(num) {
const out = [];
const roms = [
["M", 1000],
["CM", 900],
["D", 500],
["CD", 400],
["C", 100],
["XC", 90],
["L", 50],
["XL", 40],
["X", 10],
["IX", 9],
["V", 5],
["IV", 4],
["I", 1],
];
for (let i of roms) {
if (num % i[1] < num) {
out.push(i[0]);
num -= i[1];
}
console.log(num % i[1]);
}
return out;
}
console.log(convertToRoman(7));

13
steamroller.js Normal file
View file

@ -0,0 +1,13 @@
const out = [];
function steamrollArray(arr) {
for (let item of arr) {
if (Array.isArray(item) === false) {
out.push(item);
} else if (Array.isArray(item)) {
steamrollArray(item);
}
}
return out;
}
console.log(steamrollArray([1, [2], [3, [[4]]]]));

20
sumFibs.js Normal file
View file

@ -0,0 +1,20 @@
function sumFibs(num) {
if (num === 1) {
return 1;
}
let fibs = [1, 1];
while (fibs[fibs.length - 1] <= num) {
fibs.push(fibs[fibs.length - 1] + fibs[fibs.length - 2]);
}
if (fibs[fibs.length - 1] > num) {
fibs.pop();
}
let odds = fibs.filter((n) => n % 2);
return odds.reduce((accumulator, currentValue) => accumulator + currentValue);
}
console.log(sumFibs(1000));

7
truthCheck.js Normal file
View file

@ -0,0 +1,7 @@
function truthCheck(collection, pre) {
return collection.every(function (user) {
return user.hasOwnProperty(pre) && Boolean(user[pre])
});
}
console.log(truthCheck([{"single": "double"}, {"single": NaN}], "single"));