function addTogether(first, second) {
if (typeof first !== "number") {
return undefined;
}
const sum = function(second) {
if (typeof second === "number") {
return first + second
} else {
return undefined
}
}
if (typeof second === "undefined") {
return function(second) {
return sum(second)
}
} else {
return sum(second)
}
}
// test here
console.log(addTogether(2, 3));
console.log(addTogether(2)(3));
function rangeOfNumbers(startNum, endNum) {
let numArr = [];
if (startNum === endNum ) {
numArr.push(endNum)
return numArr;
} else {
numArr.push(startNum)
return [...numArr, ...rangeOfNumbers(startNum + 1, endNum)]
}
};
console.log(rangeOfNumbers(6,9))
function validate(password) {
console.log(password);
return /[a-z]/.test(password) && /[0-9]/.test(password)&& /[A-Z]/.test(password)&& /\w{6}/.test(password) ;
}
\w («w»: от английского «word» – «слово»)
Символ «слова», а точнее – буква латинского алфавита или цифра или подчёркивание _. Нелатинские буквы не являются частью класса \w, то есть буква русского алфавита не подходит.
Valid passwords will only be alphanumeric characters.т.е. символы только алфавитно-цифровые. В примере выше есть точка и точка с запятой, а раз они есть, то должно вернуть FALSE.
frontent devнужно, чтобы вам все разжевали и положили в рот, да и недели за две, да и сразу на работу за 200тыс
const fearNotLetter = str => {
// guard expression на случай пустой строки
if (str === "") {
return undefined;
}
// на всякий случай приводим строку к нижнему регистру
const normalizedString = str.toLowerCase();
// берём код первого символа, ниже в цикле это значение будет обновляться.
let charCode = normalizedString[0].codePointAt(0);
// перебираем строку посимвольно,
// если код текущего символа соответствует коду из переменной charCode,
// то увеличиваем charCode на единицу
// если код символа не соответствует ожидаемому коду из переменной charCode,
// значит мы нашли пропавший символ и вернём его.
for (let char of normalizedString) {
if (charCode === char.codePointAt(0)) {
charCode = charCode + 1;
} else {
return String.fromCodePoint(charCode);
}
}
};
function fearNotLetter(str) {
const letters = str.split("");
const letter = letters.reduce((acc, letter, index) => {
if (acc !== undefined) return acc;
const prevLetterCode = (letters[index - 1] || letter).charCodeAt();
if (letter.charCodeAt() - prevLetterCode > 1) return String.fromCharCode(prevLetterCode + 1)
return undefined;
}, undefined);
return letter;
}
fearNotLetter("abce");
//d
var fearNotLetter = str => {
str = str.split('');
if (str.length < 2) return undefined;
let res = [];
for (var i = 0; i < str.length-1; i++){
if (str[i].charCodeAt() > str[i+1].charCodeAt()) {
return ['Error'];
} else
if (str[i].charCodeAt()+1 !== str[i+1].charCodeAt()) {
res.push(String.fromCharCode(str[i].charCodeAt()+1));
str.splice(i+1, 0, String.fromCharCode(str[i].charCodeAt()+1));
i--;
}
}
return res.length > 0 ? res.join(', ') : undefined;
}
function fearNotLetter(str) {
var missingLetter;
str.split('').map(v => v.charCodeAt(0)).forEach((v,i,arr) => {
if (!missingLetter && arr[++i]) {
if ((++v) !== arr[i]) {
missingLetter = String.fromCharCode(v);
};
};
});
return missingLetter;
}
console.log(fearNotLetter("bcdf"));
function fearNotLetter(str) {
var missingLetter;
Array(str.length).fill(str.charCodeAt(0)).map((v,i) => v + i ).forEach(v => {
if (!missingLetter && !str.includes(String.fromCharCode(v))) {
missingLetter = String.fromCharCode(v);
};
});
return missingLetter;
}
console.log(fearNotLetter("stvwx"));
function whatIsInAName(collection, source) {
return collection.filter(obj =>
Object.entries(source).every(([key, val]) => obj[key] === val)
)
}
const whatIsInAName = (collection, source) =>
collection.filter(function(n) {
return this.every(([ k, v ]) => n[k] === v);
}, Object.entries(source));
function frankenSplice(arr1, arr2, n) {
// The second array should remain the same after the function runs.
let copy = arr2.slice()
for(let i = 0; i < arr1.length; i++) {
// добавляем
copy.splice(n, 0, arr1[i])
// сдвигаем позицию куда добавлять
// потому что добавили один элемент
n = n + 1
}
return copy;
}