
áá¬áá¬ááŒááºáá°áá¶á០ááá·áºá¡ááœáẠáá±á¬ááºážáá«ážáá
áºáá¯áẠáá¯ááºáá±áá²á·áááºá á¡ááºáá¬áá»á°ážáá»á¬ážá¡ááœááºáž developer áá»áŸá±á¬ááºáá¬ážáá°áá»á¬ážááᯠá¡áá»á¬ážáá¯á¶ážáá±ážáá±á·ááŸááááºá áá±á¬ááºážáá«ážááẠáááá¯ááááºá¡áá
áºáá»á¬ážá¡ááœáẠááááá¯á¶ážá¡áá±ááŸáá·áº á¡áá¯á¶ážáááºáá«áááá·áºáááºá
áááºážááá¬áá¯áá¹ááá®áá»á¬ážááœáẠá¡ááºáá¬áá»á°ážáá»á¬ážááẠááá¯ážáá±ážááá»á±á¬áºááŒá áºáá²á·áááºá áá«á á¡á¶á·ááŒá áá¬áá±á¬á· áááŒá áºááá·áºáá«áá°áž - á¡ááºáá¬áá»á°ážáá áºáá¯ááᯠá¡á±á¬ááºááŒááºá áœá¬ááŒááºáááºážááŒááºážá ááá·áºá¡á¬áž á¡áá¯ááºáá±á¬ááºážáá áºáá¯áááẠá¡ááœáá·áºá¡áááºážáá±ážáááºá áá«áá±ááá·áº ááŸá¯ááºááœá±ážáá²á· ááŒá¿áá¬ááœá±ááᯠáááŒá¬áá ááŒá±ááŸááºážááá¯á· ááá¯á¡ááºáá¬ááŒá±á¬áá·áº áá«á ááááºáááá¯ážááŸááºážáá«áá°ážá
ááá¯á·á¡ááŒááºá á¡áá»á¬ážá
á¯ááŸá¬á á€á¡áá¯ááºá¡áá»á¬ážá
á¯ááẠáá»áŸá±á¬ááºáá¬ážáá°áá¯ááºáá±á¬ááºááá·áºá¡áá¯ááºááŸáá·áº ááááºááá¯ááºáá±á¬áºáááºáž áááºážááá¯á·ááᯠááŒá±ááŸááºážááẠááá¯á¡ááºáá±áá±ážáááºá áá
áºáá«áá
áºáá¶ááœáẠGoogle ááá¯á·ááá¯áẠá¡ááŒá¬ážá¡áááºážá¡ááŒá
áºááᯠáá
á
áºáá±ážáá² áááºážááᯠáá¯ááºáá±á«áºááœáẠááŒá¯áá¯ááºááááºááŒá
áºáááºá áá¯ááºáááºá á¡ááŒá±á¡áá±ááœá±á áááŒááºážááŒááºáž ááŒá±á¬ááºážáá²áá¬ááŒá®áž áá¯áá¹ááá®ááá»áá¯á·á á¡á²áá®ááᯠá¡ááºáá¬áá»á°ážááœá±ááᯠá
áœáá·áºááœáŸááºááá¯ááºáá±ááá·áº á¡áá¯ááºááŸááºáá±á¬áºáá±á¬áºáá»á¬ážáá»á¬ážá áá®á¡á
ááºá¡áá¬ááᯠááá¯ááºáá¬áá±ááŒáá²áá«á á€áá±á¬ááºážáá«ážááẠá¡áá¯ááºááŸá¬ááœá±áá°áá»á¬ážá¡ááœáẠá¡áá¯ááºáá»á¬ážá¡ááŒá
ẠáááŒá¬ááá¡áá¯á¶ážááŒá¯áá±á·ááŸááá±á¬ áá¯á¶ááŸáẠJavaScript áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠááœá²ááŒááºážá
áááºááŒá¬ááŒááºážá¡ááœáẠáááºááœááºáá«áááºá
áá«ááá¯á·áááºážááá¯ááááá±ážááẠ"Habr" áá á¬áááºáá°á¡á¬ážáá¯á¶ážá¡ááœáẠ- "Habr" áááá¯ááá¯ážááŸááºážáá¯ááºááᯠá¡áá¯á¶ážááŒá¯á áááºááá·áº Skillbox áááºáááºážááœááºá á¬áááºážááœááºážááá·áºá¡áá« 10 áá°áááºáá»áŸá±á¬á·á á»á±ážá
Skillbox á០á¡ááŒá¶ááŒá¯áá¬ážáááº- áááºááœá±á·áááºáááºáž .
á¡áááááá±á¬á· á¡ááºáá¬áá»á°ážá¡ááœáẠáá±áá»á¬ááŒááºáááºáá¬ážááá¯á·áá«áá²á
áá¯ááºáá²á·á á¡áá¯ááºááœá±ááᯠáá ááẠáá±áá°áá» á¡ááºáá¬áá»á°áž ááŒááºáááºááŸá¯ á¡ááŒá¶ááŒá¯áá»ááºááá»áá¯á·ááᯠááŒáá·áºááŒáá¡á±á¬ááºá
á¡áááááá±á¬á· ááŒáá¯áááºááŒááºáááºáá¬ážááá¯á·áá«áá²á á¡ááºáááá¯áá®áááºáá»á¬ážááŸáá·áº áá±áá¬ááœá²á·á ááºážáá¯á¶áá»á¬ážááᯠáááºáááºáá»áŸ áá±á¬ááºážá áœá¬ááŸááºááááŒá±á¬ááºáž á ááºážáááºááŒá®áž áááºááŸáá·áº ááááºááááºážááŸá®ážáá±á¬ áááºáááºáá»á¬ážááœáẠááá·áºá¡ááááá¬ááᯠááŒáŸáá·áºáááºáá«á á¡ááºáá¬áá»á°ážáá»á¬ážá¡ááœáẠááŒáá¯áááºááŒááºáááºááẠáá°áá®áá±ážááá¯ááºááá·áº á¡áœááºááá¯ááºážááááºáá±á¬ááºážáá»á¬ážá áœá¬ááŸááááºá áá«ááá¯á·á¡ááŒá¶áá±ážáááºá , , О .
áá¯á¶ážááŒááºáá»ááºááᯠá¡áá¶áá»ááºáá»ááºááŒá±á¬ááá¯á· áááºáá°ááá»áá¯ážáááºáá«áááºá áá»áŸá±á¬ááºáá¬ážáá°áá»á¬ážá¡á¬áž áááºáá¬áá¯ááºáááºááᯠááŒá±á¬ááŒááẠá¡ááŒá¶ááŒá¯ááá¯áááºááŸá¬ áá¯ááºáá±á«áºááœáẠáá±ážáá¯á¶áá»áŸáá (ááá¯á·ááá¯áẠááœááºáá»á°áá¬áá²ááá¯á· áá¯ááºááᯠááááºááááẠááá¯ááºááá·áºáá«)á á€áááºážá¡á¬ážááŒáá·áºá áááºááẠáá¯ááºááœáẠá¡ááŸá¬ážáá¯ááºáááá±á¬áºáááºáž á¡ááŒá±ááẠáá±áá°áá»á¡á¬ážááŒáá·áº ááŸááºáááºáá«áá áááºááẠáááºá á¡á±á¬ááºááŒááºááŸá¯ á¡ááœáá·áºá¡áááºážááᯠááá¯ážá á±ááá¯ááºáááºá
áááŒá±ááŸááºážáááºááŸá¬ ááŒá¿áá¬ááᯠáá¬ážáááºááá¯á· ááá¯áá«áááºá á¡áá»áá¯á·ááá á¹á áá»á¬ážááœáẠáááºááẠá¡áá¯ááºáá áºáá¯ááᯠá¡áá±á«áºáá¶áá¬ážáááºááŒá®áž ááŸá¬ážááœááºážáá±á¬áááºážááŒá±á¬ááºážááᯠáá±á¬ááºááœá¬ážááá¯ááºáááºá á¡ááºáá¬áá»á°ážáá°áá¶ ááŸááºážáááºážááŒááºáá¬ážáá±á¬ áá±ážááœááºážá¡áá»áá¯á·ááᯠáá±ážááá·áºáááºá
PC ááŸá¬ááá¯ááºáá² áááºáá²á· áá¯ááºáá±ážáááºááá¯á· áá±á·áá»áá·áºááá¯á· ááá¯áá«áááºá á¡ááºáá¬áá»á°ážáá»á¬ážá¡ááœááºáž áá»áŸá±á¬ááºáá¬ážáá°á¡á¬áž á¡ááááºá¡ááŒáœáẠááá¯á·ááá¯áẠá¡ááá¯á¡áá»á±á¬ááºáá±á¬áºáááºáá»ááŒááºáž áááŸáááá·áº á¡ááŸááºá¡áá¬ážáá áºáá¯ááŸáá·áº whiteboard ááᯠáá±ážáá¬ážáááºá á¡ááŒá±ááá¯ááŸá¬áá±á¬á¡áá«á áááºááá¯ááºááᯠá á¬ááœááºáá áºááœááºáá±á«áºááœáẠááá¯á·ááá¯áẠáá¯ááºáá±á«áºááœáẠááá¯ááºááá¯ááºáá»áá±ážááá·áºáááºá á¡áá¬áá¬ááá¯ááºážááᯠáá±á«ááºážáá²ááŸá¬ ááááºážáá¬ážááẠá¡áá±ážááŒá®ážáá²á·á¡áá¬áá áºáá¯ááᯠáá±á·ááœá¬ážááá¯ááºáá«áááºá
JavaScript ááœáẠááá°áá¬áá¯á¶á á¶ áá¯ááºáá±á¬ááºá áá¬áá»á¬áž
á€á¡áá¯ááºáá»á¬ážáá²á០á¡áá»áá¯á·ááẠááá·áºá¡ááœáẠáááºážááŸá®ážááŒá®ážáá¬ážááŒá áºáá±á¬ááºážááŒá áºááá¯ááºáááºá ááẠá¡áá¬ážáá° áá áºáá¯áá¯ááᯠááŒá±ááŸááºážááẠá¡ááºáá¬áá»á°ážáá»á¬áž ááŸááá²á·áá°ážááẠááá¯á·ááá¯áẠJavaScript ááᯠáááºáá°áá±á áẠáááºážááá¯á·ááᯠáá±á·áá»áá·áºáá²á·áááºá áá²á á¡áᯠá¡á²áá«ááœá±ááᯠááŒááºááŒá®áž ááŒá±ááŸááºážáááá·áº á¡áá»áááºáá±á¬ááºááŒá®á áá¯ááºáááºážá ááºáá²á· á¡áá±ážá ááẠááŸááºážááŒáá»ááºáá«á
Palindrome
palindrome ááá¯áááºááŸá¬ áá¯á¶ááŸáẠáŠážáááºáá»ááºááŸáá·áº ááá·áºáá»ááºááẠáŠážáááºáá»áẠááŸá áºáá¯áá¯á¶áž á¡ááá¡áá»áá°áá®á áœá¬ áááºááá¯ááºáá±á¬ á á¬áá¯á¶ážáá»á¬ážá áá«áá» ááá¯á·ááá¯áẠá¡á á®á¡á á¥áº áá áºáá¯ááŒá áºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá "á¡ááºáá¬" ááẠááááºááá¯ááºážááŒá áºáá±á¬áºáááºáž "á á¬ážááœá²" ááŸáá·áº "áá»áœááº" ááá¯ááºáá«á
áá¬ááºá ááº
ááŒáá¯ážáá áºáá»á±á¬ááºážáá±ážáááº; string ááẠpalindrome ááŒá áºááŒá®áž ááá¯ááºáá«á false ááᯠá¡ááŸááºááŒááºááá¯á·ááá¯ááºá á±ááá·áº function ááᯠáá±ážáááºááá¯á¡ááºáááºá á€ááá á¹á ááœááºá áááºááẠáá±áá¬ááœááºáá»á¬ážááŸáá·áº áá¯ááºááŒááºá¡ááŸááºá¡áá¬ážáá»á¬ážááᯠááá·áºááœááºážá ááºážá á¬ážááẠááá¯á¡ááºáááºá
palindrome('racecar') === ááŸááºáááºá
palindrome('ááá¬áž') === ááŸá¬ážáááºá
á¡áá¯ááºáá áºáá¯ááᯠááœá²ááŒááºážá áááºááŒá¬ááŒáá·áºáá¡á±á¬ááº
á€áá±áá¬ááœáẠá¡ááá á¡áá°á¡áááŸá¬ ááŒáá¯ážááᯠááŒá±á¬ááºážááŒááºááŸááºááẠááŒá áºáááºá "ááŒá±á¬ááºážááŒááº" ááŒáá¯ážááẠáá°áááºážáá áºáá¯ááŸáá·áº áá¯á¶ážááá°áá®áá«áá áá»áœááºá¯ááºááá¯á·ááẠpalindrome ááᯠáááºáá¶áááŸáááŒá®áž áá¯ááºáá±á¬ááºáá»ááºááẠááŸááºááá·áºáá«áááºá ááá¯ááºááẠááŸá¬ážáááºá
áá¯á¶ážááŒááºáá»ááº
á€ááœáẠpalindrome ááá¯ááŒá±ááŸááºážáá±ážááá·áºáá¯ááºááŒá áºáááºá
const palindrome = str => {
// turn the string to lowercase
str = str.toLowerCase()
// reverse input string and return the result of the
// comparisong
return str === str.split('').reverse().join('')
}áááá¡ááá·áºááŸá¬ input string á០á á¬áá¯á¶ážáá»á¬ážááᯠá á¬áá¯á¶ážá¡áá±ážááá¯á· ááŒá±á¬ááºážáááºááŒá áºáááºá áááºážááẠáááá¯ááááºááẠáá¬ááºáá±á¬ááºáá»á¬ážááᯠáááºážááá¯á·ááá¯ááºááá¯áẠááŸáá¯ááºážááŸááºáááºááá¯ááºáá² ááŒá áºáááºááŸáẠááá¯á·ááá¯áẠá¡ááŒá¬ážáááºááá·áºá¡áá¬á០ááá¯ááºáá² á¡á¬ááá¶áá»ááºááŒá áºáááºá
áá¯áááá¡ááá·áºááá±á¬á· áá»ááºážááŒá±á¬ááºážááŒááºááŒá±á¬ááºážááá¯á·áá«á áá«ááá¯ááºááá¯á·ááááºáá«áá°áž- .split() method (String library) ááᯠá¡áá¯á¶ážááŒá¯á áááºážááᯠarray áá áºáá¯á¡ááŒá áºááá¯á· ááŒá±á¬ááºážáááºááá¯á¡ááºáá«áááºá ááá¯á·áá±á¬áẠáá»áœááºá¯ááºááá¯á·ááẠ.reverse() (Array library) ááᯠá¡áá¯á¶ážááŒá¯á array ááᯠááŒá±á¬ááºážááŒááºááŸááºáááºá áá±á¬ááºáá¯á¶ážá¡ááá·áºááŸá¬ reverse array ááᯠ.join() (Array library) áá¯á¶ážááŒá®áž string áá áºáá¯ááá¯á· ááŒá±á¬ááºážáááºááŒá áºáááºá
ááá¯áááºáá¯ááºáááºááá¯á¡ááºáááºááŸá¬ âááŒá±á¬ááºážááŒááºâ á á¬ááŒá±á¬ááºážááᯠáá°áááºážá á¬ááŒá±á¬ááºážááŸáá·áº ááŸáá¯ááºážááŸááºáᬠááááºá¡ááŸáẠááá¯á·ááá¯áẠá¡ááŸá¬ážááᯠááŒááºáá±ážááŒááºážááŒá áºáááºá
FizzBuzz
á¡ááºáá¬áá»á°ážáá»á¬ážááœáẠáá±áááºážá¡á á¬ážáá¯á¶áž á¡áá¯ááºáá»á¬ážáá²á០áá áºáá¯á
áá¬ááºá ááº
áá¶áá«ááºáá»á¬ážááᯠ1 á០n á០ááœááºááá¯ážááºááá¯á· áááá·áºáá¯ááºááá·áº áá¯ááºáá±á¬ááºáá»ááºááᯠáá±ážáá¬ážááẠááá¯á¡ááºááŒá®áž n ááẠááá·áºáááºáá»ááºáá áºáá¯á¡ááŒá Ạáá¯ááºáá±á¬ááºááá·áº ááááºážááŒáá·áºááŒá áºááŒá®áž á¡á±á¬ááºáá«á¡ááŒá±á¡áá±áá»á¬ážááŒáá·áº áá¯ááºáá±á¬ááºáááº-
- 3 áááŒáŸá±á¬ááºááááºážá¡á á¬áž fizz ááá¯áá¯ááºáá±ážáá«á
- 5 á á¡ááŒáŸá±á¬ááºááááºážáá»á¬ážá¡á á¬áž buzz áá¯ááºáá±ážááŒááºážá
- 3 ááŸáá·áº 5 ááŸá áºáá¯áá¯á¶ážá ááŒáŸá±á¬ááºááááºážáá»á¬ážá¡á á¬áž fizzbuzz á¡ááœááºá
ááá°áá¬
Fizzbuzz(5)
ááááº
// áááá
// áááá
// áááá¯ááá²
// áááá
// buzz
á¡áá¯ááºáá áºáá¯ááᯠááœá²ááŒááºážá áááºááŒá¬ááŒáá·áºáá¡á±á¬ááº
á€áá±áá¬ááœáẠá¡áááá¡áá»ááºááŸá¬ JavaScript ááᯠá¡áá¯á¶ážááŒá¯á ááŒáŸá±á¬ááºááááºážáá»á¬ážááᯠááŸá¬ááœá±ááẠáááºážáááºážááŒá áºáááºá áááºážááᯠááááºážááŸá áºáá¯á¶ážááœá²áá±á¬á¡áá« á¡ááŒáœááºážááᯠáááºááŒááá¯ááºá á±ááá·áº áá±á¬áºáá°áááºá¡á±á¬áºááá±áᬠááá¯á·ááá¯áẠá¡ááŒáœááºáž - % ááᯠá¡áá¯á¶ážááŒá¯á á¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºáááºá á¡ááŒáœááºážááẠ0 ááŒá áºáá«á áááááááºážááẠáá¯áááááŒá±á¬ááºááááºážáá áºáá¯ááŒá áºáááºáᯠááá¯ááá¯áááºá
12% 5 // 2 --> 12 ááẠ5 á ááá¯ážááááºážááá¯ááºáá«á
12% 3 // 0 --> 12 ááẠ3 á áááá¯ážááááºážááŒá
áºáááºá
áá®áá±á¬á· 12 ááᯠ5 áá²á· ááœá²ááẠá¡ááŒáœááºáž 2 áá²á· 2 áááŸá¬áá«á 12 ááᯠ3 ááœá²ááẠá¡ááŒáœááºáž 4 áá²á· 0 ááá¯áááá¯ááºáá«áááºá áááá¡ááŒá±á¡áá±ááŸá¬ 12 á 5 áá²á· ááŒáŸá±á¬ááºááááºážááá¯ááºáá°áž áá¯áááá 12 ááẠ3 á áááá¯ážááááºážááŒá áºáááºá
áá¯á¶ážááŒááºáá»ááº
á¡áá±á¬ááºážáá¯á¶ážááŒá±ááŸááºážáá»ááºááŸá¬ á¡á±á¬ááºáá«áá¯ááºááŒá áºáá«áááºá
const fizzBuzz = num => {
for(let i = 1; i <= num; i++) {
// check if the number is a multiple of 3 and 5
if(i % 3 === 0 && i % 5 === 0) {
console.log('fizzbuzz')
} // check if the number is a multiple of 3
else if(i % 3 === 0) {
console.log('fizz')
} // check if the number is a multiple of 5
else if(i % 5 === 0) {
console.log('buzz')
} else {
console.log(i)
}
}
}áá¯ááºáá±á¬ááºáá»ááºááẠá¡ááŒá±á¡áá±ááá¯ááºáᬠáá¯ááºááŒááºáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á ááá¯á¡ááºáá±á¬ á á áºáá±ážááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºááŒá®áž áá¯á¶ážá áœá²áá°á០ááá¯á¡ááºáá±á¬ ááááºááᯠáá¯ááºáá±ážáá«áááºá ááŒá¿áá¬ááœááºá if...else statements á á¡á á®á¡á á¥áºááᯠá¡á¬áá¯á¶á áá¯ááºááá·áºáááº- ááŸá áºáááºá¡ááŒá±á¡áá± (&&) ááŒáá·áº á áááºááŒá®áž ááááºážáá»á¬ážá áœá¬ááᯠááŸá¬áááœá±á·ááá¯ááºáá±á¬ ááá á¹á ááŒáá·áº á¡áá¯á¶ážáááºáá«áááºá ááááºá¡áá±ááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠááœá±ážáá»ááºááŸá¯á¡á¬ážáá¯á¶ážááᯠá¡áá»á¯á¶ážáááºáááºá
Anagram
á€áááºááŸá¬ áá¶áá«ááºáá°áá±á¬ á¡ááŒá¬ážá áá¬ážáá¯á¶ážáá»á¬ážá á á¬áá¯á¶ážá¡á¬ážáá¯á¶ážáá«ááŸááá±á¬ á áá¬ážáá¯á¶ážáá áºáá¯á¶ážá¡ááœáẠá¡áááºááŒá áºáááºá ááá¯á·áá±á¬áº ááá°áá®áá±á¬á¡á á®á¡á á¥áºáá áºáá¯ááŒá áºáááºá
áá¬ááºá ááº
string ááŸá áºáá¯ááẠanagrams áá¯ááºááá¯áẠá á áºáá±ážááá·áº áá¯ááºáá±á¬ááºáá»ááºááᯠáá±ážááẠááá¯á¡ááºááŒá®áž ááá á¹á ááẠá¡áá±ážáááŒá®ážáá«á áá¬ááºáá±á¬ááºáá»á¬ážááá¯áᬠáá±ááœááºáááºá ááœááºáááºáá»á¬áž ááá¯á·ááá¯áẠáá¯ááºááŒááºá¡ááŸááºá¡áá¬ážáá»á¬ážááᯠááá·áºááœááºážá ááºážá á¬ážáááºááá¯ááºáá«á
anagram('finder'á 'Friend') â> ááŸááºáááºá
anagram('hello', 'bye') â> ááŸá¬ážáááºá
á¡áá¯ááºáá áºáá¯ááᯠááœá²ááŒááºážá áááºááŒá¬ááŒáá·áºáá¡á±á¬ááº
á€áá±áá¬ááœáẠááá·áºááœááºážá ááºážá á¬ážááẠá¡áá±ážááŒá®ážáá±á¬á¡áá»ááºááŸá¬ á á¬áá áºááŒá±á¬ááºážá á®ááŸá á¡áááºááá¯ááºážááŸá áºáá¯ááŸá á á¬áá¯á¶ážáá áºáá¯á¶ážá á®ááŸáá·áº áááºážááá¯á·ááá¶áá«ááºáá»á¬ážááᯠá á áºáá±ážááẠááá¯á¡ááºáá«áááºá
finder â> f: 1 friend â> f: 1
i: 1 r: 1
n: 1 i: 1
d: 1 e: 1
e: 1 n: 1
r: 1 á: 1
Anagram áá±áá¬ááᯠááááºážáááºážáááºá¡ááœáẠJavaScript object literal áá²á·ááá¯á·áá±á¬ ááœá²á·á ááºážáá¯á¶ááᯠááœá±ážáá»ááºááá·áºáááºá á€ááá á¹á ááœáẠá¡áááá¡áá»ááºááŸá¬ á á¬áá¯á¶ážáá¡áá¹ááá¬ááŒá áºááŒá®ážá áááºááá¯ážááẠáááºááŸáá á¬ááŒá±á¬ááºážááŸá áááºážááááºááá²áá²á¡áá±á¡ááœááºááŒá áºáááºá
á¡ááŒá¬ážá¡ááŒá±á¡áá±áá»á¬áž ááŸááá«áááº-
- ááŸáá¯ááºážááŸá¥áºáá²á·á¡áá« á á¬áá¯á¶ážááœá±áá²á· ááŒá áºáááºááᯠááá·áºááœááºážá ááºážá á¬ážááá¯á· ááá¯áá«áááºá áá»áœááºá¯ááºááá¯á·ááẠááŒáá¯ážááŸá áºáá»á±á¬ááºážáá¯á¶ážááᯠá á¬áá¯á¶ážá¡áá±áž ááá¯á·ááá¯áẠá¡ááŒá®ážá¡ááŒá áºááá¯á· ááŒá±á¬ááºážáá±ážáá¯á¶áá¬ááŒá áºáááºá
- áá»áœááºá¯ááºááá¯á·ááẠááŸáá¯ááºážááŸááºááŸá¯ááŸááá¯ááºáá±á¬ áá¬ááºáá±á¬ááºá¡á¬ážáá¯á¶ážááᯠáááºáá¯ááºáá¬ážáááºá áááºááœá²ááá¯á· á¡áá±á¬ááºážáá¯á¶ážáá«á .
áá¯á¶ážááŒááºáá»ááº
// helper function that builds the
// object to store the data
const buildCharObject = str => {
const charObj = {}
for(let char of str.replace(/[^w]/g).toLowerCase()) {
// if the object has already a key value pair
// equal to the value being looped over,
// increase the value by 1, otherwise add
// the letter being looped over as key and 1 as its value
charObj[char] = charObj[char] + 1 || 1
}
return charObj
}
// main function
const anagram = (strA, strB) => {
// build the object that holds strA data
const aCharObject = buildCharObject(strA)
// build the object that holds strB data
const bCharObject = buildCharObject(strB)
// compare number of keys in the two objects
// (anagrams must have the same number of letters)
if(Object.keys(aCharObject).length !== Object.keys(bCharObject).length) {
return false
}
// if both objects have the same number of keys
// we can be sure that at least both strings
// have the same number of characters
// now we can compare the two objects to see if both
// have the same letters in the same amount
for(let char in aCharObject) {
if(aCharObject[char] !== bCharObject[char]) {
return false
}
}
// if both the above checks succeed,
// you have an anagram: return true
return true
}á¡áá¯á¶ážááŒá¯ááŸá¯ááá¯ááááá¬ážáá« á¡áá±á«áºá snippet áá²ááŸá¬á á€áááºážáááºážááẠá¡áá¬ááá¹áá¯ááœááºáá±á«áºáá¬áá±á¬ á¡áááºáá»á¬áž ááá¯á·ááá¯áẠáá±á¬á·áá»á¬ážáá«ááŸááá±á¬ array áá áºáá¯ááᯠááŒááºáá±ážáááºá á€ááá á¹á ááœááºá array áááºá€áá²á·ááá¯á·ááŒá áºáááá·áºáááºá
['f'á 'i', 'n', 'd', 'e', ââ'r']
á€áááºážááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠá¡á á¯ááá¯áẠá¡ááœááºááá¯ááºáá¯ááºá áá¬áááá¯áá² á¡áá¬ááá¹áá¯á áá¯ááºááá¹áááá»á¬ážááᯠáááŸáááá¯ááºáááºá ááŒá¿áá¬áá áºáá¯ááœááºá á á¬ááŒá±á¬ááºážááŸá áºáá¯á áá¯á¶ážááœáẠáá°áá®áá±á¬á á¬áá¯á¶ážá¡áá±á¡ááœááºááŸááááŸá á á áºáá±ážááẠá€áááºážáááºážááᯠ.length ááá¯ááºááá¯ááºááŸá¯ááŒáá·áº áááºá¡áá¯á¶ážááŒá¯ááá¯ááºááẠ- áááºážááẠanagrams á á¡áá±ážááŒá®ážáá±á¬á¡ááºá¹áá«áááºáá áºáá¯ááŒá áºáááºá
áááá»á¬ážááᯠááŸá¬ááœá±áá«á
á¡ááºáá¬áá»á°ážááœá±ááŸá¬ áá±á«áºáá¬áááºáá²á· ááá¯ážááŸááºážáá²á· á¡áá¯ááºáá áºáá¯áá«á
áá¬ááºá ááº
á¡ááŒááºážá¡áá¯á¶á¡ááŒá
Ạstring áá
áºáá¯áá°áá±á¬ áá¯ááºáá±á¬ááºáá»ááºáá
áºáá¯ááᯠáá±ážáá¬ážááŒá®áž string ááœááºáá«ááŸááá±á¬ ááá¡áá±á¡ááœááºááᯠááŒááºáá±ážáááºááá¯á¡ááºáááºá
áááá°ááẠâáâáâáâáâáá«âáâá¡áá¯âáâáá°âá
á¥ááá¬:
findVowels('hello') //â> á
findVowels('why') // â> 0
áá¯á¶ážááŒááºáá»ááº
á€áááºááŸá¬ á¡ááá¯ážááŸááºážáá¯á¶áž ááœá±ážáá»ááºááŸá¯ááŒá áºáááº-
const findVowels = str => {
let count = 0
const vowels = ['a', 'e', 'i', 'o', 'u']
for(let char of str.toLowerCase()) {
if(vowels.includes(char)) {
count++
}
}
return count
}.includes() method ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááᯠááá¯ááŒá¯ááẠá¡áá±ážááŒá®ážáá«áááºá áááºážááᯠstrings ááŸáá·áº array ááŸá áºáá¯áá¯á¶ážá¡ááœáẠáááá¯ááºáááºá array áá áºáá¯ááœáẠá¡áá»áá¯á·áá±á¬áááºááá¯ážáá»á¬ážáá«ááŸááááŸá áá¯á¶ážááŒááºááẠáááºážááá¯á¡áá¯á¶ážááŒá¯ááá·áºáááºá array ááœáẠáááºááŸááºáá¬ážáá±á¬áááºááá¯ážáá»á¬ážáá«áááºáá±áá«á á€áááºážáááºážááẠá¡ááŸááºá¡ááá¯ááºážááŒááºááŒá áºáááºááŒá áºááŒá®ážá ááá¯ááºáá«á false ááŒááºáá¬áááºááŒá áºáááºá
ááŒá¿áá¬á¡ááœáẠááá¯áá±á¬ááºážáá±á¬ á¡ááŒá±áá áºáᯠááŸááá«áááºá
const findVowels = str => {
const matched = str.match(/[aeiou]/gi)
return matched ? matches.length : 0
}áááºážááẠ.match() áááºážáááºážááᯠá¡áá¯á¶ážááŒá¯ááŒá®áž áááá±á¬ááºáá±á¬ ááŸá¬ááœá±ááŸá¯ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠááœáá·áºááŒá¯áááºá áááºááŸááºáá¬ážáá±á¬ á á¬ááŒá±á¬ááºážá¡ááœááºáž áááºážáááºážáá áºáá¯á¡áá±ááŒáá·áº áá¯á¶ááŸááºáá±á¬áºááŒáá»ááºááᯠááœá±á·ááŸááá«áá ááŒááºáá±ážááá·áºáááºááá¯ážááẠááá¯ááºáá®áá±á¬ áá¬ááºáá±á¬ááºáá»á¬ážá á¡áááºážá¡áá»ááºážáá áºáá¯ááŒá áºáááºá ááá¯ááºáá®ááŸá¯áááŸááá«áá .match() ááẠnull ááŒá áºááœá¬ážáááºá
áá®ááá¯áá¬áá»á®
á¡ááá·áºá¡áá»áá¯ážáá»áá¯ážááŸá á¡ááºáá¬áá»á°ážáá»á¬ážááœáẠááœá±á·ááá¯ááºáá±á¬ ááá¹ááááºá¡áá¯ááºáá áºáá¯á Fibonacci sequence ááẠáá±á¬ááºáááºááœá²áá áºáá¯á á®ááẠááááºááŸá áºáá¯ááá±á«ááºážáááºááŒá áºááŒá®áž áá±á¬ááºáááºááœá²áá áºáá¯á á®ááẠááááºážááááºážáá»á¬ážá¡ááœá²ááá¯ááºááŒá áºááŒá±á¬ááºáž ááŸááºáá¬ážááá¯ááºáááºá áá®áá±á¬á· áááááááºážáááºáá¯á¶ážá áá®á¡ááá¯ááºážááŒáá·áºáá«- 0á 1á 1á 2á 3á 5á 8á 13á 21á 34á
áá¬ááºá ááº
n ááẠfunction á¡ááœáẠargument á¡ááŒá áºááŒááºáááºážáá±á¬ áá¶áá«ááºááŒáá·áº á¡áá»áá¯á·áá±á¬ sequence ááœáẠnth record ááá¯ááŒááºáá±ážááá·áº function ááá¯áá±ážáááºááá¯á¡ááºáááºá
fibonacci(3) //â> á
á€áá¬áááºááẠá¡ááŒááºážá¡áá¯á¶ááœáẠáááºááŸááºáá¬ážááá·áº á¡ááŒáááºá¡áá±á¡ááœááºááᯠá¡ááœááºááŒááºá ááá·áºáá»á±á¬áºáá±á¬á¡áá±á¡áá¬ážááœáẠáááºááá¯ážááᯠááŒááºáá±ážááŒááºážááŒá áºáááºá ááŒá¿áá¬ááᯠáá¯á¶áá±á¬áºáá¬ááœáẠá€áááºážááẠááœááºážáááºáá»á¬áž á¡áá¯á¶ážááŒá¯ááẠááá¯á¡ááºáááºá áááºážá¡á á¬áž ááŒááºáá°ááŒááºážááᯠáááºá¡áá¯á¶ážááŒá¯áá«áá áááºážááẠááœá±á·áá¯á¶áá±ážááŒááºážáá°á¡á¬áž áá»á±áááºá á±ááŒá®áž ááá·áºá¡á¬áž á¡ááŸááºá¡áááºážáááºáá±ážááá¯ááºáááºá
áá¯á¶ážááŒááºáá»ááº
const fibonacci = num => {
// store the Fibonacci sequence you're going
// to generate inside an array and
// initialize the array with the first two
// numbers of the sequence
const result = [0, 1]
for(let i = 2; i <= num; i++) {
// push the sum of the two numbers
// preceding the position of i in the result array
// at the end of the result array
const prevNum1 = result[i - 1]
const prevNum2 = result[i - 2]
result.push(prevNum1 + prevNum2)
}
// return the last value in the result array
return result[num]
}ááááºá¡áááºážá¡áá»ááºážááœááºá ááááá¶áá«ááºááŸá áºáá¯ááᯠá¡á á®á¡á á¥áºááœáẠááá·áºááœááºážáá¬ážáá±á¬ááŒá±á¬áá·áº á¡ááœá²ááá¯ááºáá«áááºááŸá¯áá áºáá¯á á®ááẠááááºáá¶áá«ááºááŸá áºáá¯ááá±á«ááºážáááºááŒá áºáá±á¬ááŒá±á¬áá·áº ááŒá áºáááºá á¡á ááá¯ááºážááœáẠáá±á¬ááºáá¶áá«ááºááá¯ááá°ááẠáá¶áá«ááºááŸá áºáá¯ááᯠááá°ááá¯ááºáá±á¬ááŒá±á¬áá·áº loop ááẠáááºážááá¯á·ááᯠá¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±ážááá¯ááºáááºááá¯ááºáá«á ááá¯á·áá±á¬áº áá»áœááºá¯ááºááá¯á·ááááá·áºá¡ááá¯ááºážá ááááá¶áá«ááºááŸá áºáá¯ááẠá¡ááŒá²áááºáž 0 ááŸáá·áº 1 ááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áºá áááºááẠááááºáá»á¬áž áááºážáá»ááºážááŸá¯ááᯠááá¯ááºááá¯ááºá áááºááá¯ááºáááºá
ááŒááºáá°ááŒááºážá¡ááœááºá á¡áá¬á¡á¬ážáá¯á¶ážááẠáá áºáá»áááºáááºážááœáẠááá¯ááá¯ááá¯ážááŸááºážááŒá®áž ááá¯ááá¯ááŸá¯ááºááœá±ážáááº-
const fibonacci = num => {
// if num is either 0 or 1 return num
if(num < 2) {
return num
}
// recursion here
return fibonacci(num - 1) + fibonacci(num - 2)
}áá»áœááºá¯ááºááá¯á·ááẠá¡ááŒááºážá¡áá¯á¶áá»á¬ážá¡ááŒá Ạáá±ážáááºáá±á¬áá¶áá«ááºáá»á¬ážááᯠááŒááºá fibonacci() ááᯠáááºáááºáá±á«áºááá¯áá«áááºá ááŒááºááœá¬ážáá±á¬ á¡ááŒááºážá¡áá¯á¶ááẠ0 ááá¯á·ááá¯áẠ1 ááŒá áºáá±á¬á¡áá« áá»áœááºá¯ááºááá¯á· áááºááá·áºááœá¬ážáááºá
áá±á¬ááºáá»ááº
ááŒá áºááá¯ááºáá»á±áá»á¬ážáááºááŸá¬á áááºááẠfrontend ááá¯á·ááá¯áẠJavaScript developer á¡áá¯áẠ(á¡áá°ážáááŒáá·áº á¡áááºáááºážá¡ááá·áºááœááºááŸááá»áŸááº) á¡ááºáá¬áá»á°ážáá¶ááá«á á€á¡áá¯ááºáá»á¬ážáá²á០áá áºáá¯áá¯ááᯠáááºááŒá¯á¶ááœá±á·áá°ážááŒá®ážááŒá áºáááºá ááá¯á·áá±á¬áº áááºážááá¯á·ááᯠáááºáááœá±á·áááá«áá áááºážááá¯á·ááẠá¡áá¬áááºááœáẠá¡áá¯á¶ážáááºááá¯ááºááẠ- á¡áááºážáá¯á¶áž á¡ááœá±ááœá± ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á¡ááœááºá
Skillbox á០á¡ááŒá¶ááŒá¯áá¬ážáááº-
- á¡áá¯á¶ážáá» á¡áœááºááá¯ááºážáááºáááºáž .
- á¡áœááºááá¯ááºážáááºáááºáž .
- áááºááœá±á· áá áºááŸá áºáááºáááºáž .
source: www.habr.com
