Ọrụ ajụjụ ọnụ 5 Javascript: nyocha na azịza

Ọrụ ajụjụ ọnụ 5 Javascript: nyocha na azịza

Site na onye ntụgharị okwu: bipụtara gị akụkọ Maria Antonietta Perna, onye na-ekwu maka ọrụ Javascript nkịtị, a na-enyekarị ndị nrụpụta akwụkwọ n'oge ajụjụ ọnụ. Isiokwu ahụ ga-aba uru, nke mbụ, nye ndị mmemme novice.

Ajụjụ ọnụ na ụlọ ọrụ teknụzụ abụwo ihe a na-ekwu n'obodo ahụ ogologo oge. Nke a ekwesịghị ịbụ ihe ijuanya - ịgafe ajụjụ ọnụ na-enye gị ohere ịnweta ezigbo ọrụ. Ma nke a adịghị mfe, ebe ọ bụ na a na-achọkarị idozi nsogbu ndị dị mgbagwoju anya.

Ọzọkwa, ọtụtụ mgbe, ọtụtụ n'ime ọrụ ndị a adịghị emetụta ọrụ onye na-achọ ọrụ ga-arụ, ma ọ ka dị mkpa ka edozi ya. Mgbe ụfọdụ, ị ga-eme ya na bọọdụ, na-enweghị ịlele Google ma ọ bụ ihe ọ bụla ọzọ. Ee, ọnọdụ ahụ ji nwayọọ nwayọọ na-agbanwe, ụfọdụ ụlọ ọrụ na-ahapụkwa ajụjụ ọnụ ndị dị otú ahụ, ma ọtụtụ ndị ọrụ ka na-agbaso omenala a. Edere edemede a na nyocha nke ọrụ Javascript a na-ahụkarị nke a na-ejikarị dị ka ọrụ maka ndị na-achọ ọrụ.

Anyị na -echetara: maka ndị na-agụ Habr niile - ego 10 ruble mgbe ị na-edebanye aha na nkuzi Skillbox ọ bụla site na iji koodu mgbasa ozi Habr.

Skillbox na-atụ aro: Usoro bara uru "Mobile Developer PRO".

Isi ihe bụ ịkwadebe nke ọma maka ajụjụ ọnụ gị.

Ee, tupu anyị amalite ilele ọrụ ndị ahụ, ka anyị leba anya na ụfọdụ ndụmọdụ nkwadebe ajụjụ ọnụ n'ozuzu.

Isi ihe bụ ịkwadebe tupu oge eruo. Nwalee otú ị na-echeta algọridim na usoro data, ma melite ihe ọmụma gị na mpaghara ndị ị na-amachaghị nke ọma. Enwere ọtụtụ nyiwe ịntanetị nwere ike inyere gị aka ịkwado maka ajụjụ ọnụ. Anyị na-adụ ọdụ Geeks makaGeeks, Pramp, Ajụjụ ọnụ.io и KooduSignal.

Ọ bara uru ịmụta ikwu mkpebi ahụ n'olu dara ụda. Ọ bụ ihe amamihe dị na ya ịgwa ndị na-achọ akwụkwọ gbasara ihe ị na-eme, ọ bụghị naanị dee na bọọdụ (ma ọ bụ pịnye koodu n'ime kọmputa, na-agbachikwa nkịtị). N'ụzọ dị otú a, ọ bụrụ na ị na-emehie na koodu, ma ngwọta bụ n'ozuzu ziri ezi, ị nwere ike dịkwuo gị ohere ịga nke ọma.

Ịkwesịrị ịghọta nsogbu ahụ tupu ịmalite idozi ya. N'ọnọdụ ụfọdụ, ị nwere ike ịghọta ọrụ n'elu elu wee gbadaa n'ụzọ na-ezighi ezi. Ọ nwere ike ịba uru ịjụ onye na-agba ajụjụ ọnụ ajụjụ ole na ole dokwuo anya.

Ịkwesịrị iji aka na-ede koodu, ọ bụghị na PC. Ọ na-eme na n'oge ajụjụ ọnụ a na-enye onye na-arịọ arịrịọ akara na bọọdụ ọcha, ebe enweghị ihe ngosi ma ọ bụ nhazi akpaka. Mgbe ị na-achọ ngwọta, ọ bara uru idetu koodu gị na mpempe akwụkwọ ma ọ bụ ozugbo na bọọdụ. Ọ bụrụ na ị na-edebe ihe niile n'isi gị, ị nwere ike chefuo ihe dị mkpa.

Ọrụ ndebiri na Javascript

Ụfọdụ n'ime ọrụ ndị a eleghi anya amaraworị gị. Ị nwere ajụjụ ọnụ ebe ị ga-edozi ihe yiri ya, ma ọ bụ mee na ha mgbe ị na-amụ Javascript. Ọfọn, ugbu a bụ oge iji dozie ha ọzọ, yana nkọwa zuru ezu nke usoro ahụ.

Palindrome

Palindrome bụ okwu, ahịrịokwu ma ọ bụ usoro mkpụrụedemede a na-agụ kpọmkwem otu ma n'ụzọ ọ na-adịbu ma n'akụkụ nke ọzọ. Dịka ọmụmaatụ, "Anna" bụ palindrome, ma "tebụl" na "John" abụghị.

Nhazi

Enyere eriri; ịkwesịrị ide ọrụ na-enye gị ohere ịlaghachi eziokwu ma ọ bụrụ na eriri ahụ bụ palindrome, na ụgha ma ọ bụrụ na ọ bụghị. N'okwu a, ịkwesịrị iburu n'uche oghere na akara edemede.

palindrome ('racecar') === eziokwu
palindrome ('table') === ụgha

Ka anyị nyochaa ọrụ ahụ

Isi echiche ebe a bụ ịtụgharị eriri ahụ. Ọ bụrụ na eriri "reverse" bụ kpam kpam yiri nke mbụ, mgbe ahụ, anyị enwetala palindrome na ọrụ ahụ kwesịrị ịlaghachi n'eziokwu. Ọ bụrụ na ọ bụghị, ụgha.

mkpebi

Nke a bụ koodu na-edozi 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('')
}

Nzọụkwụ mbụ bụ ịtụgharị mkpụrụedemede dị na eriri ntinye ka ọ bụrụ obere mkpụrụedemede. Nke a bụ nkwa na mmemme ahụ ga-atụnyere ihe odide ahụ n'onwe ha, ọ bụghị ikpe ma ọ bụ ihe ọ bụla ọzọ.

Nzọụkwụ nke abụọ bụ ịtụgharị ahịrị ahịrị. Nke a anaghị esiri ike: ịkwesịrị iji usoro .split () (ọbá akwụkwọ eriri) gbanwee ya ka ọ bụrụ nhazi. Mgbe ahụ, anyị na-atụgharị n'usoro site na iji .reverse () (Array Library). Nzọụkwụ ikpeazụ bụ iji .join() (Ọbá akwụkwọ Array) tọghata ntụgharị azụ ka ọ bụrụ eriri.

Ugbu a ihe niile ị ga - eme bụ iji eriri "reverse" tụnyere eriri mbụ, weghachite nsonaazụ ya bụ eziokwu ma ọ bụ ụgha.

FizzBuzz

Otu n'ime ọrụ kachasị ewu ewu na ajụjụ ọnụ.

Nhazi

Ịkwesịrị ide ọrụ na-ebipụta nọmba site na 1 ruo n na console, ebe n bụ integer nke ọrụ ahụ na-ewere dị ka paramita, yana ọnọdụ ndị a:

  • mmepụta fizz kama ịba ụba nke 3;
  • mpụta buzz kama ọnụọgụgụ nke bụ ọnụọgụ nke 5;
  • mmepụta fizzbuzz kama ọnụọgụgụ nke bụ ọnụọgụ abụọ nke 3 na 5.

Ihe nlele:

Fizzbuzz (5)

N'ihi

// 1
// 2
// fiz
// 4
//mkpa

Ka anyị nyochaa ọrụ ahụ

Isi ihe ebe a bụ ụzọ isi chọta ọtụtụ site na iji JavaScript. Enwere ike ime ya site na iji onye na-arụ ọrụ modulus ma ọ bụ nke fọdụrụ -%, nke na-enye gị ohere igosi nke fọdụrụ mgbe ị na-ekewa ọnụọgụ abụọ. Ọ bụrụ na nke fọdụrụ bụ 0, ọ pụtara na nọmba nke mbụ bụ otutu nke abụọ.

12% 5 // 2 -> 12 abụghị otutu nke 5
12% 3 // 0 -> 12 bụ otutu nke 3

Ya mere, ọ bụrụ na ị kewaa 12 na 5, ị ga-enweta 2 na nke fọdụrụ nke 2. Ọ bụrụ na ị kewaa 12 site na 3, ị ga-enweta 4 na nke fọdụrụ nke 0. N'okwu nke mbụ, 12 abụghị otutu nke 5, na nke abụọ. , 12 bụ otutu nke 3.

mkpebi

Ihe ngwọta kachasị mma ga-abụ koodu ndị a:

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)
    }
  }
}

Ọrụ ahụ na-eme nyocha ndị dị mkpa site na iji nkwupụta ọnọdụ wee mepụta nsonaazụ achọrọ nke onye ọrụ. N'ime nsogbu ahụ, ọ bara uru ịṅa ntị n'usoro nke ma ọ bụrụ ... nkwupụta ndị ọzọ: malite na ọnọdụ abụọ (&&) wee kwụsị na ikpe ebe enweghị ike ịchọta ọtụtụ ọnụọgụ. N'ihi ya, anyị na-ekpuchi nhọrọ niile.

Anagram

Nke a bụ aha okwu nwere mkpụrụedemede niile nke okwu ọzọ n'otu nọmba, mana n'usoro dị iche.

Nhazi

Anyị kwesịrị ide ọrụ na-enyocha ma eriri abụọ bụ ihe anagrams, na ikpe ahụ adịghị mkpa. Naanị mkpụrụedemede ka a na-agụ; A naghị echebara oghere ma ọ bụ akara edemede n'uche.

anagram ('nchọta', 'Enyi') —> eziokwu
anagram('hello', 'bye') —> ụgha

Ka anyị nyochaa ọrụ ahụ

Ihe dị mkpa ị ga-atụle ebe a bụ na ịkwesịrị ịlele mkpụrụedemede ọ bụla na ahịrị ntinye abụọ na nọmba ha na ahịrị ọ bụla.

nchọta —> f: 1 enyi —> f: 1
ihe: 1r: 1
n: 1 nke: 1
d: 1 e: 1
e: 1 n:1
r: 1d: 1

Iji chekwaa data anagram, ị ga-ahọrọ nhazi dịka ihe Javascript nkịtị. Isi ihe dị na nke a bụ àgwà nke akwụkwọ ozi ahụ, uru bụ ọnụ ọgụgụ nke ugboro ugboro ya na ahịrị ugbu a.

Enwere ọnọdụ ndị ọzọ:

  • Ịkwesịrị ijide n'aka na a naghị echebara akwụkwọ ozi mgbe ị na-atụnyere. Naanị anyị na-atụgharị eriri abụọ ahụ ka ọ bụrụ obere ma ọ bụ nke ukwu.
  • Anyị na-ewepụ ihe niile na-abụghị mkpụrụedemede na ntụnyere. Kasị mma na-arụ ọrụ okwu mgbe nile.

mkpebi

// 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
}

Lezienụ anya maka ojiji Ihe.keys() na snippet n'elu. Usoro a na-eweghachite n'usoro nwere aha ma ọ bụ igodo n'otu usoro ha pụtara na ihe ahụ. N'okwu a, nhazi ahụ ga-adị ka nke a:

['f', 'i', 'n', 'd', 'e', ​​'r']

N'ụzọ dị otú a, anyị na-enweta ihe onwunwe nke ihe na-enweghị ime nnukwu loop. Na nsogbu, ị nwere ike iji usoro a na ihe onwunwe ogologo .length iji chọpụta ma eriri abụọ ahụ nwere ọnụ ọgụgụ nke mkpụrụedemede - nke a bụ akụkụ dị mkpa nke anagrams.

Chọọ ụdaume

Ọrụ dị mfe nke na-abịakarị na ajụjụ ọnụ.

Nhazi

Ịkwesịrị ide ọrụ na-ewe eriri dị ka arụmụka wee weghachi ọnụọgụ ụdaume dị n'ime eriri ahụ.
Udaume bụ "a", "e", "i", "o", "u".

Ihe nlele:

FindVowels('ndewo') // —> 2
chọta ụdaume('ihe kpatara') // —> 0

mkpebi

Nke a bụ nhọrọ kacha mfe:

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
}

Ọ dị mkpa ịṅa ntị na iji usoro .gụnyere (). Ọ dị maka ma eriri na arrays. Ekwesịrị iji ya chọpụta ma n'usoro ọ nwere uru ụfọdụ. Usoro a na-alaghachi ezi ma ọ bụrụ na n'usoro nwere uru akọwapụtara, yana ụgha ma ọ bụghị ya.

Enwere ngwọta dị mkpụmkpụ maka nsogbu ahụ:

const findVowels = str => {
  const matched = str.match(/[aeiou]/gi)
  return matched ? matches.length : 0
}

Nke a na-eji usoro .match(), nke na-enye gị ohere itinye nyocha nke ọma. Ọ bụrụ na a na-ahụ okwu oge niile dị ka arụmụka usoro n'ime eriri akọwapụtara, mgbe ahụ uru nloghachi bụ n'usoro nke mkpụrụedemede dakọtara. Ọfọn, ọ bụrụ na enweghị egwuregwu, mgbe ahụ .match() na-alaghachi efu.

fibonacci

A kpochapụwo ọrụ nwere ike ịhụ na ajụjụ ọnụ na dị iche iche na ọkwa. Ọ dị mma icheta na usoro Fibonacci bụ usoro ọnụọgụgụ ebe nke ọ bụla na-esote bụ nchikota nke abụọ gara aga. Yabụ, ọnụọgụ iri mbụ dị ka nke a: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34.

Nhazi

Ịkwesịrị ide ọrụ na-eweghachite ndekọ nth n'otu usoro, n'ịbụ ọnụ ọgụgụ nke agafere dị ka arụmụka maka ọrụ ahụ.

fibonacci (3) // —> 2

Ọrụ a gụnyere ịgagharị site na akaghị ọnụ ọgụgụ nke oge akọwapụtara na arụmụka ahụ, na-eweghachi uru na ọnọdụ kwesịrị ekwesị. Ụzọ a iji gosipụta nsogbu ahụ chọrọ iji loops mee ihe. Ọ bụrụ na ị na-eji recursion kama, ọ nwere ike ime onye na-agba ajụjụ ọnụ ma nye gị isi ihe ole na ole.

mkpebi

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]
}

N'usoro nsonaazụ, ọnụọgụ abụọ mbụ dị n'usoro n'ihi na ntinye ọ bụla n'usoro bụ nchikota ọnụọgụ abụọ gara aga. Na mbido enweghị ọnụọgụ abụọ enwere ike iwere iji nweta ọnụọgụ na-esote, yabụ loop enweghị ike iwepụta ha na akpaghị aka. Mana, dị ka anyị maara, ọnụọgụ abụọ mbụ na-abụkarị 0 na 1. Ya mere, ị nwere ike iji aka bido nsonaazụ ya.

Banyere nlọghachi azụ, ihe niile dị mfe na mgbagwoju anya n'otu oge:

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)
}

Anyị na-aga n'ihu na-akpọ fibonacci (), na-agafe ọnụọgụ dị nta na nta dị ka arụmụka. Anyị na-akwụsị mgbe arụmụka gafere bụ 0 ma ọ bụ 1.

nkwubi

O yikarịrị, ị hụlarị nke ọ bụla n'ime ọrụ ndị a ma ọ bụrụ na a gbara gị ajụjụ ọnụ maka ọrụ frontend ma ọ bụ JavaScript onye nrụpụta (karịsịa ma ọ bụrụ na ọ bụ n'ogo nke obere). Ma ọ bụrụ na ị hụbeghị ha, ha nwere ike ịba uru n'ọdịnihu - ọbụlagodi maka mmepe n'ozuzu.

Skillbox na-atụ aro:

isi: www.habr.com

Tinye a comment