ʻO nā nīnauele ma nā hui ʻenehana ua lōʻihi ka kamaʻilio ʻana o ke kaona. ʻAʻole kēia he mea kahaha - ʻo ka hele ʻana i kahi hālāwai ninaninau e hāʻawi iā ʻoe i ka manawa e loaʻa ai kahi hana maikaʻi. Akā ʻaʻole maʻalahi kēia, no ka mea pono e hoʻoponopono pinepine ʻia nā pilikia paʻakikī.
Eia kekahi, i ka manawa pinepine, ʻaʻole pili ka hapa nui o kēia mau hana i ka hana a ka mea noi e hana ai, akā pono lākou e hoʻoholo. I kekahi manawa pono ʻoe e hana ma ka papa, me ka nānā ʻole ʻana me Google a i ʻole nā kumu ʻē aʻe. ʻAe, ke loli mālie nei ke kūlana, a ke haʻalele nei kekahi mau hui i kēlā mau nīnauele, akā nui nā mea hana e hoʻomau nei i kēia kuʻuna. Hāʻawi kēia ʻatikala i ka nānā ʻana i nā hana JavaScript maʻamau i hoʻohana pinepine ʻia ma ke ʻano he mau hana no ka poʻe ʻimi hana.
Hoʻomaopopo mākou iā ʻoe:no ka poʻe heluhelu a pau o "Habr" - kahi ho'ēmi o 10 rubles i ka wā e kākau inoa ai i kekahi papa Skillbox e hoʻohana ana i ka code promotional "Habr".
ʻO ka mea nui e hoʻomākaukau pono no kāu nīnauele.
ʻAe, ma mua o ka hoʻomaka ʻana e nānā i nā hana, e nānā kākou i kekahi mau ʻōlelo aʻoaʻo hoʻomākaukau no ka ninaninau.
ʻO ka mea nui e hoʻomākaukau i mua. E hoʻāʻo i ka maikaʻi o kou hoʻomanaʻo ʻana i nā algorithm a me nā kūkulu ʻikepili, a hoʻomaikaʻi i kou ʻike ma nā wahi āu i kamaʻāina ʻole ai. Nui nā pūnaewele pūnaewele e hiki ke kōkua iā ʻoe e hoʻomākaukau no nā nīnauele. Kūkākūkā mākou geeksforgeeks, Pramp, Nīnauele.io и Kānāwai Kaha.
Pono e aʻo e haʻi i ka hoʻoholo me ka leo nui. Pono e haʻi i nā mea noi e pili ana i kāu hana, a ʻaʻole e kākau wale ma ka papa (a i ʻole e paʻi i ka code i loko o ke kamepiula, me ka leo ʻole). ʻO kēia ala, inā hana hewa ʻoe i ke code, akā pololei ka hopena, hiki iā ʻoe ke hoʻonui i kou kūlana lanakila.
Pono ʻoe e hoʻomaopopo i ka pilikia ma mua o kou hoʻomaka ʻana e hoʻoponopono. I kekahi mau hihia, hoʻomaopopo paha ʻoe i kahi hana a laila hele i ke ala hewa. Pono paha e nīnau i kekahi mau nīnau wehewehe i ka mea nīnau nīnau.
Pono ʻoe e hoʻomaʻamaʻa i ke kākau ʻana ma ka lima, ʻaʻole ma ka PC. I ka wā o nā nīnauele, hāʻawi ʻia ka mea noi i kahi māka a me kahi papa keʻokeʻo, kahi i loaʻa ʻole ai nā hōʻailona a i ʻole nā hōpili maʻalahi. Ke ʻimi nei i kahi hoʻonā, pono ke kākau ʻana i kāu code ma kahi ʻāpana pepa a i ʻole pololei ma ka papa. Inā mālama ʻoe i nā mea a pau i kou poʻo, poina paha ʻoe i kekahi mea nui.
Nā hana template ma JavaScript
Ua kamaʻāina paha kekahi o kēia mau hana iā ʻoe. Ua loaʻa iā ʻoe nā nīnauele kahi āu e hoʻoponopono ai i kahi mea like, a i ʻole hoʻomaʻamaʻa iā lākou i ke aʻo ʻana i ka JavaScript. ʻAe, ʻo ka manawa kēia e hoʻoponopono hou iā lākou, a me ka wehewehe kikoʻī o ke kaʻina hana.
Palindrome
ʻO ka palindrome ka huaʻōlelo, ka ʻōlelo a i ʻole ke ʻano o nā huaʻōlelo i heluhelu like ʻia ma ka ʻaoʻao maʻamau a ma ka ʻaoʻao ʻē aʻe. No ka laʻana, he palindrome ʻo "Anna", akā ʻaʻole ʻo "papa" a me "John".
Keaka
Hāʻawi ʻia i kahi kaula; pono ʻoe e kākau i kahi hana e hiki ai iā ʻoe ke hoʻihoʻi ʻoiaʻiʻo inā he palindrome ke kaula, a he wahaheʻe inā ʻaʻole. I kēia hihia, pono ʻoe e noʻonoʻo i nā hakahaka a me nā kaha kaha.
ʻO ka manaʻo nui ma ʻaneʻi e hoʻohuli i ke kaula. Inā like loa ke kaula "ho'ohuli" me ke kaula kumu, a laila ua loa'a iā mākou kahi palindrome a pono e ho'i 'oia'i'o ka hana. Inā ʻaʻole, wahaheʻe.
olelo hooholo
Eia ke code e hoʻonā i ka 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('')
}
ʻO ka hana mua, ʻo ia ka hoʻololi ʻana i nā huaʻōlelo i ke kaula hoʻokomo i ka helu haʻahaʻa. He hōʻoia kēia e hoʻohālikelike ka papahana i nā huaʻōlelo iā lākou iho, ʻaʻole ka hihia a i ʻole kekahi mea ʻē aʻe.
ʻO ka hana ʻelua e hoʻohuli i ka laina. ʻAʻole paʻakikī kēia e hana: pono ʻoe e hoʻololi iā ia i kahi laha me ka hoʻohana ʻana i ke ala .split() (String library). A laila hoʻohuli mākou i ka laha me ka hoʻohana ʻana i ka .reverse() (Array library). ʻO ka hana hope loa, ʻo ia ka hoʻololi ʻana i ke kāʻei hope i kahi kaula me ka hoʻohana ʻana i ka .join() (Array library).
ʻO nā mea a pau āu e hana ai, ʻo ia ke hoʻohālikelike i ke kaula "reverse" me ke kaula kumu, e hoʻihoʻi i ka hopena ʻoiaʻiʻo a i ʻole.
FizzBuzz
ʻO kekahi o nā hana kaulana loa i nā nīnauele.
Keaka
Pono ʻoe e kākau i kahi hana e paʻi ana i nā helu mai ka 1 a i ka n i ka console, kahi n he helu helu e lawe ʻia ka hana ma ke ʻano he ʻāpana, me nā kūlana penei:
hoʻopuka i ka fizz ma kahi o nā mea he 3;
ka leo hoʻopuka ma kahi o nā helu he 5;
fizzbuzz hoʻopuka ma kahi o nā helu he mau huahelu o 3 a me 5.
Pākuhi:
Fizzbuzz(5)
hopena
// 1
// 2
// fizz
// 4
//buzz
E kālailai kākou i ka hana
ʻO ka mea nui ma ʻaneʻi he ala e ʻike ai i nā lehulehu me ka hoʻohana ʻana i ka JavaScript. Hiki ke hoʻokō ʻia me ka hoʻohana ʻana i ka modulus operator a i ʻole ke koena - %, hiki iā ʻoe ke hōʻike i ke koena i ka wā e puʻunaue ana i ʻelua mau helu. Inā he 0 ke koena, ʻo ia hoʻi, ʻo ka helu mua ka helu o ka lua.
12% 5 // 2 -> 12 ʻaʻole ia he paʻa o 5
12% 3 // 0 -> 12 ka nui o 3
No laila, inā e puunaue ʻoe i ka 12 me 5, loaʻa iā ʻoe ka 2 me ke koena o 2. Inā e puʻunaue ʻoe i ka 12 me 3, loaʻa iā ʻoe ka 4 me ke koena o 0. Ma ka hihia mua, ʻaʻole ka 12 he huina o 5, ma ka lua. , 12 ka huina o 3.
olelo hooholo
ʻO ka hopena maikaʻi loa ʻo ia kēia code:
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)
}
}
}
Hana ka hana i nā loiloi pono me ka hoʻohana ʻana i nā ʻōlelo kūlana a hoʻopuka i ka hopena i koi ʻia e ka mea hoʻohana. I ka pilikia, pono e hoʻolohe i ke ʻano o nā ʻōlelo inā ... ʻē aʻe: e hoʻomaka me kahi kūlana pālua (&&) a hoʻopau me ka hihia i hiki ʻole ke loaʻa nā helu he nui. ʻO ka hopena, uhi mākou i nā koho a pau.
Anagram
ʻO kēia ka inoa o ka huaʻōlelo i loaʻa nā hua a pau o kekahi huaʻōlelo ma ka helu hoʻokahi, akā ma kahi ʻano ʻokoʻa.
Keaka
Pono mākou e kākau i kahi hana e nānā inā he anagrams ʻelua mau kaula, a ʻaʻole pili ka hihia. ʻO nā huaʻōlelo wale nō i helu ʻia; ʻAʻole mālama ʻia nā hakahaka a i ʻole nā kaha kaha.
No ka mālama ʻana i ka ʻikepili anagram, pono ʻoe e koho i kahi hoʻolālā e like me kahi mea JavaScript maoli. ʻO ke kī i kēia hihia ke ʻano o ka leka, ʻo ka waiwai ka helu o kāna mau hana hou ʻana i ka laina o kēia manawa.
Aia nā kūlana ʻē aʻe:
Pono ʻoe e hōʻoia ʻaʻole i mālama ʻia ka hihia o nā leka i ka wā e hoʻohālikelike ai. Hoʻololi wale mākou i nā kaula ʻelua i ka helu haʻahaʻa a i luna paha.
Hoʻokaʻawale mākou i nā huaʻōlelo ʻole a pau mai ka hoʻohālikelike. ʻOi aku ka maikaʻi e hana pū me nā ʻōlelo maʻamau.
olelo hooholo
// 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
}
E nānā i ka hoʻohana Object.keys() ma ka snippet ma luna. Hoʻihoʻi kēia ʻano hana i kahi ʻano i loaʻa nā inoa a i ʻole nā kī ma ke ʻano like i hōʻike ʻia i loko o ka mea. I kēia hihia, e like ka array:
['f', 'i', 'n', 'd', 'e', 'r']
Ma kēia ala e loaʻa ai iā mākou nā waiwai o ka mea me ka ʻole e hana i kahi loop bulk. Ma kahi pilikia, hiki iā ʻoe ke hoʻohana i kēia ʻano me ka waiwai .length e nānā inā loaʻa i nā kaula ʻelua ka helu like o nā huapalapala - he mea nui kēia o nā anagrams.
Huli i nā leo leo
ʻO kahi hana maʻalahi e puka pinepine mai i nā nīnauele.
Keaka
Pono ʻoe e kākau i kahi hana e lawe i kahi kaula i mea hoʻopaʻapaʻa a hoʻihoʻi i ka helu o nā leo i loko o ke kaula.
ʻO nā leo leo "a", "e", "i", "o", "u".
Pākuhi:
findVowels('hello') // —> 2
findVowels('no ke aha') // —> 0
He mea nui e hoʻolohe i ka hoʻohana ʻana i ke ʻano .includes(). Loaʻa ia no nā kaula a me nā arrays. Pono e hoʻohana ʻia e hoʻoholo inā loaʻa i kahi laʻa kekahi waiwai. Hoʻihoʻi mai kēia ʻano i ka ʻoiaʻiʻo inā loaʻa i ka array ka waiwai i ʻōlelo ʻia, a he wahaheʻe inā ʻaʻole.
Hoʻohana kēia i ke ʻano .match() e hiki ai iā ʻoe ke hoʻokō i kahi hulina kūpono. Inā ʻike ʻia kahi ʻōlelo maʻamau ma ke ʻano he kumu hoʻopaʻapaʻa i loko o ke kaula i kuhikuhi ʻia, a laila ʻo ka waiwai hoʻihoʻi he ʻano o nā huaʻōlelo like. ʻAe, inā ʻaʻohe pāʻani, a laila hoʻihoʻi ka .match() i ka null.
fibonacci
He hana maʻamau i loaʻa ma nā nīnauele ma nā pae like ʻole. He mea pono e hoʻomanaʻo ʻo ka Fibonacci sequence he pūʻulu o nā helu i kēlā me kēia ma hope o ka huina o nā mea ʻelua i hala. No laila, ua like nā helu mua he ʻumi: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34.
Keaka
Pono ʻoe e kākau i kahi hana e hoʻihoʻi i ka moʻolelo n i kekahi kaʻina, me ka n ka helu i hoʻoholo ʻia ma ke ʻano he hoʻopaʻapaʻa i ka hana.
fibonacci(3) // —> 2
ʻO kēia hana e pili ana i ka hele ʻana ma kahi loop i ka helu o nā manawa i kuhikuhi ʻia i ka hoʻopaʻapaʻa, e hoʻihoʻi i ka waiwai ma ke kūlana kūpono. ʻO kēia ala e hoʻopuka ai i ka pilikia e pono ai ka hoʻohana ʻana i nā loops. Inā hoʻohana ʻoe i ka recursion ma kahi, e ʻoluʻolu paha ia i ka mea nīnau nīnau a hāʻawi iā ʻoe i kekahi mau kikoʻī.
olelo hooholo
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]
}
I loko o ka pūʻulu hualoaʻa, aia nā helu mua ʻelua i loko o ka moʻo no ka mea ʻo kēlā me kēia komo ʻana i ke kaʻina ka huina o nā helu ʻelua i hala. I ka hoʻomaka ʻana, ʻaʻohe helu ʻelua i hiki ke lawe ʻia e kiʻi i ka helu aʻe, no laila ʻaʻole hiki i ka loop ke hana maʻalahi iā lākou. Akā, e like me kā mākou ʻike, ʻo nā helu mua ʻelua he 0 a me 1 mau.
No ka recursion, ua maʻalahi nā mea a pau a ʻoi aku ka paʻakikī i ka manawa like:
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)
}
Ke kāhea nei mākou i ka fibonacci(), e hele ana i nā helu liʻiliʻi a liʻiliʻi ma ke ʻano he mau hoʻopaʻapaʻa. Kū mākou inā 0 a i ʻole 1 ka manaʻo i hala.
hopena
ʻO ka mea nui paha, ua hālāwai mua ʻoe i kekahi o kēia mau hana inā ua nīnauele ʻia ʻoe no kahi hana hoʻomohala mua a JavaScript paha (ʻoi loa inā aia ma ka pae ʻōpio). Akā inā ʻaʻole ʻoe i ʻike iā lākou, pono paha lākou i ka wā e hiki mai ana - ma ka liʻiliʻi no ka hoʻomohala ākea.