Ներկառուցված մեթոդի տարբերությունը Կտոր JavaScript- ի և Ruby- ի մեջ

Կտոր մեթոդ - JavaScript v / s Ruby

Կոդավորումը ամեն ինչ վերաբերում է պրակտիկային, համբերատարությանը և նվիրվածությանը: Ավելին ես անում, ավելին ուզում ես անել: JS- ը միշտ զարմացրեց և գրավեց ինձ: Ինձ համար դա մոգություն ունի: Որպեսզի դրան տիրապետեք, ամեն օր սկսեց լուծել katas- ը Codewars.com- ում:

Երեկ, մի շարք սերիայի ամենամեծ թվով 5 կատա լուծելը, ես օգտագործեցի ներկառուցված JS մեթոդի կտոր: Ես նաև նույն ներկառուցված մեթոդը օգտագործեցի Ռուբիում `նույն կատաները լուծելու համար: Այսօր մենք կքննարկենք փոքր, բայց կտրուկ տարբերությունը Ruby- ի և JavaScript- ի միջև կտորների մեթոդի արդյունքի միջև:

Օրինակի նպատակի համար մենք պարզապես կօգտագործենք codewars- ի նույն կատաները: Այստեղ մենք պետք է գտնենք 5 թվանշանների ամենամեծ հաջորդականությունը: Մենք առաջին հերթին կտեսնենք, թե ինչ է տալիս JavaScript- ի կտորը, երբ այն կրկնում ենք տողի վրա:

գործառույթի լուծում (թվանշաններ) {
 var ամենամեծ = 0;
 var այժմ = 0;
 
 for (թող i = 0; i <թվանշանները. երկարությունը - 4; i ++) {
  այժմ = թվանշանները.լիս (i, (i + 5))
  console.log ("Փոփոխականի արժեքն այժմ" + հիմա + "է, երբ i- ի արժեքը" + նիշ է [i])
  ամենամեծ = Math.max (ամենամեծը ՝ այժմ)
 }
 վերադառնալ ամենամեծը
}

Այստեղ, այս բլոգի գրառման համար, մենք ուշադրություն կդարձնենք այժմ = թվանշաններ.slice (i, (i + 5)) տողի վրա: Եթե ​​այս պահին մուտքագրեք փոփոխականի արժեքը «12345678909125» տողի համար, ապա կտեսնեք այս տողերը վահանակում:

Փոփոխականի արժեքն այժմ 12345 է, երբ i- ի արժեքը 1 է
Փոփոխականի արժեքն այժմ 23456 է, երբ i- ի արժեքը 2 է
Փոփոխականի արժեքն այժմ 34567 է, երբ i- ի արժեքը 3 է
Փոփոխականի արժեքն այժմ 45678 է, երբ i- ի արժեքը 4 է
Փոփոխականի արժեքն այժմ 56789 է, երբ i- ի արժեքը 5 է
Փոփոխականի արժեքն այժմ 67890 է, երբ i- ի արժեքը 6 է
Փոփոխականի արժեքն այժմ 78909 է, երբ i- ի արժեքը 7 է
Փոփոխականի արժեքն այժմ 89091 է, երբ i- ի արժեքը 8 է
Փոփոխականի արժեքն այժմ 90912 է, երբ i- ի արժեքը 9 է
Փոփոխականի արժեքն այժմ 09125 է, երբ i- ի արժեքը 0 է

Iteration- ը կկանգնեցվի 0-ից հետո, քանի որ մենք խնդրեցինք, որ այն վազի մինչև նիշը պակաս է թվանշանից: Համենայն դեպս, ահա այն կետը, որը ես փորձում եմ կատարել, տողի մեջ է, երբ ասում եք, Այսպիսով, եթե ես ինդեքս 2-ում եմ, այն կտոր կտորից 5 թվանշան կտոր 2-ից 7-ի:

Հիմա մենք կանդրադառնանք Ռուբիին:

Մենք կփորձենք նույն Kata- ն լուծել Ruby- ում `loop- ի ընթացքում օգտագործելով ռուբին:

Def լուծում (թվանշաններ)
 @largest = 0;
 @i = 0;
 @length = digit.l երկար - 4;
իսկ @i <@l length անել
  @current_array = []
  @now = digit.slice (@i, (@i + 5))
   դնում է «փոփոխականի արժեքն այժմ # {@ հիմա է, երբ @i- ի արժեքը # {նիշ է [@i]}»:
  @ ընթացիկ_array.push (@ այժմ.to_i)
  @ ընթացիկ_array.push (@largest)
  @i + = 1
  @largest = @ aktual_array.max
 վերջ
 @ խոշորագույն
վերջ

Եթե ​​փորձեք դուրս գցել @now- ի և @i- ի արժեքը բոլոր կրկնությունների համար, կտեսնեք հետևյալ տողերը.

Փոփոխականի արժեքն այժմ 12345 է, երբ @i արժեքը 1 է
Փոփոխականի արժեքն այժմ 234567 է, երբ @i արժեքը 2 է
Փոփոխականի արժեքն այժմ 3456789 է, երբ @i արժեքը 3 է
Փոփոխականի արժեքն այժմ 45678909 է, երբ @i- ի արժեքը 4 է
Փոփոխականի արժեքն այժմ 567890912 է, երբ @i- ի արժեքը 5 է
Փոփոխականի արժեքն այժմ 678909125 է, երբ @i- ի արժեքը 6 է
Փոփոխականի արժեքն այժմ 78909125 է, երբ @i- ի արժեքը 7 է
Փոփոխականի արժեքն այժմ 8909125 է, երբ @i արժեքը 8 է
Փոփոխականի արժեքն այժմ 909125 է, երբ @i- ի արժեքը 9 է
Փոփոխականի արժեքն այժմ 09125 է, երբ @i արժեքը 0 է

Այստեղ նորից մենք դադարեցինք iteration- ը վերջին 4 թվանշաններից առաջ, քանի որ մեզ անհրաժեշտ է առավելագույն 5 թվանշանային համար: Բայց այստեղ նշելու կետը @now- ի արժեքն է, այն կսկսվի այն ցուցիչով, որը մատնանշում է @i- ն: Բայց այն կանգ չի առնի այն ցուցիչի վրա, որտեղ (@i +5) կանդրադառնա: Այստեղ կտեսնեք այնքան թվեր, որոնց արդյունքում կստացվի երկրորդ պարամետրը (@i +5):

Դա նշանակում է, որ եթե @i = 2, (@i + 5) կլինի 7. Այսպիսով, @now- ն ունենալու է ընդհանուր թվով 7 թվանշան ՝ սկսած ինդեքսից 2, որը կկազմի @now = 3456789 արժեքը:

Դա մեզ չի տա ցանկալի 5 նիշ համարը: Պատմությունը կարճ դարձնելու համար, երկրորդ պարամետրում, եթե (@i + 5-ի փոխարեն) գրենք ընդամենը 5-ը, այն կտա, ինչպես մեզ հարկավոր է: Կտորից ճիշտ կտորը կտորից ցույց կտա @i ինդեքսի 5 թվերը:

Ամփոփում

JavaScript- ի կտոր մեթոդի հիմնական տարբերությունն այն է, թե ինչպես եք կտոր արժեքը: Կլասի մեթոդով JavaScript- ի երկրորդ պարամետրը ինդեքսի համարն է, որի համար անհրաժեշտ է այն բաժանել մինչև: Մինչ Ruby- ում, երկրորդ պարամետրը մի շարք թվանշաններ է, որոնց միջոցով հարկավոր է կտորից կտոր տալ, սկսած i- ից:

Տարբերությունը, իրոք, փոքր է, բայց բավականաչափ նշանակալի է ՝ ամբողջովին փոխելու ելքը:

Anyանկացած առաջարկ կամ հարց, խնդրում եմ ազատ զգալ ինձ գրելու համար [email protected] կամ ներքևում մեկնաբանությունների բաժնում:

Շնորհավոր կոդավորում: