5 рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХрд╛рд░реНрдп: рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рд╕рдорд╛рдзрд╛рди

5 рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХрд╛рд░реНрдп: рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рд╕рдорд╛рдзрд╛рди

рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ: рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдорд╛рд░рд┐рдпрд╛ рдПрдВрдЯреЛрдирд┐рдПрдЯрд╛ рдкрд░реНрдирд╛, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреА рд╣реИрдВ, рдЕрдХреНрд╕рд░ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХреЗ рджреМрд░рд╛рди рдбреЗрд╡рд▓рдкрд░ рдЖрд╡реЗрджрдХреЛрдВ рдХреЛ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд▓реЗрдЦ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рддрдХрдиреАрдХреА рдХрдВрдкрдирд┐рдпреЛрдВ рдореЗрдВ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╢рд╣рд░ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд╛ рд╡рд┐рд╖рдп рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП - рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдкрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдЕрдЪреНрдЫреА рдиреМрдХрд░реА рдкрд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдЯрд┐рд▓ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЕрдХреНрд╕рд░ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдХреНрд╕рд░, рдЗрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдп рдЙрд╕ рдХрд╛рд░реНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЖрд╡реЗрджрдХ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЙрдиреНрд╣реЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдЗрд╕реЗ Google рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрд░реЛрдд рд╕реЗ рдЬрд╛рдБрдЪ рдХрд┐рдП рдмрд┐рдирд╛, рдмреЛрд░реНрдб рдкрд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рд╣рд╛рдВ, рд╕реНрдерд┐рддрд┐ рдзреАрд░реЗ-рдзреАрд░реЗ рдмрджрд▓ рд░рд╣реА рд╣реИ рдФрд░ рдХреБрдЫ рдХрдВрдкрдирд┐рдпрд╛рдВ рдРрд╕реЗ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░реЛрдВ рдХреЛ рдЫреЛрдбрд╝ рд░рд╣реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрдИ рдирд┐рдпреЛрдХреНрддрд╛ рдЕрднреА рднреА рдЗрд╕ рдкрд░рдВрдкрд░рд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЖрд▓реЗрдЦ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдХреНрд╕рд░ рдиреМрдХрд░реА рдЪрд╛рд╣рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдиреБрд╕реНрдорд╛рд░рдХ: "рд╣реИрдмрд░" рдХреЗ рд╕рднреА рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП - "рд╣реИрдмрд░" рдкреНрд░рдЪрд╛рд░ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рд╕реНрдХрд┐рд▓рдмреЙрдХреНрд╕ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рдирд╛рдорд╛рдВрдХрди рдХрд░рддреЗ рд╕рдордп 10 рд░реВрдмрд▓ рдХреА рдЫреВрдЯред

рд╕реНрдХрд┐рд▓рдмреЙрдХреНрд╕ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ: рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкрд╛рдареНрдпрдХреНрд░рдо "рдореЛрдмрд╛рдЗрд▓ рдбреЗрд╡рд▓рдкрд░ рдкреНрд░реЛ".

рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрдкрдиреЗ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░реА рдХрд░реЗрдВред

рд╣рд╛рдВ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЖрдЗрдП рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рддреИрдпрд╛рд░реА рдпреБрдХреНрддрд┐рдпреЛрдВ рдкрд░ рдирдЬрд░ рдбрд╛рд▓реЗрдВред

рдореБрдЦреНрдп рдмрд╛рдд рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░реА рдХрд░рдирд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдХрд┐рддрдиреА рдЕрдЪреНрдЫреА рддрд░рд╣ рдпрд╛рдж рд░рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдЕрдкрдиреЗ рдЬреНрдЮрд╛рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВ рдЬрд┐рдирд╕реЗ рдЖрдк рдмрд╣реБрдд рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдРрд╕реЗ рдХрдИ рдСрдирд▓рд╛рдЗрди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХреА рддреИрдпрд╛рд░реА рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ рдЧреАрдХреНрд╕рдлрд╝реЛрд░рдЧреАрдХреНрд╕, рдЪрдкрд░рд╛рд╕реА, рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ редio ╨╕ рдХреЛрдбрд╕рд┐рдЧреНрдирд▓.

рдирд┐рд░реНрдгрдп рдХреЛ рдЬрд╝реЛрд░ рд╕реЗ рдХрд╣рдирд╛ рд╕реАрдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реИред рдпрд╣ рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЖрд╡реЗрджрдХреЛрдВ рдХреЛ рдпрд╣ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ, рди рдХрд┐ рдХреЗрд╡рд▓ рдмреЛрд░реНрдб рдкрд░ рд▓рд┐рдЦреЗрдВ (рдпрд╛ рдЪреБрдкрдЪрд╛рдк рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ рдХреЛрдб рдЯрд╛рдЗрдк рдХрд░реЗрдВ)ред рдЗрд╕ рддрд░рд╣, рдпрджрд┐ рдЖрдк рдХреЛрдб рдореЗрдВ рдХреЛрдИ рдЧрд▓рддреА рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдорд╛рдзрд╛рди рдЖрдо рддреМрд░ рдкрд░ рд╕рд╣реА рд╣реИ, рддреЛ рдЖрдк рд╕рдлрд▓рддрд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЙрд╕реЗ рд╕рдордЭрдирд╛ рд╣реЛрдЧрд╛ред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдк рдХрд┐рд╕реА рдХрд╛рд░реНрдп рдХреЛ рд╕рддрд╣реА рддреМрд░ рдкрд░ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЧрд▓рдд рд░рд╛рд╕реНрддреЗ рдкрд░ рдЪрд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░рдХрд░реНрддрд╛ рд╕реЗ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рд╢реНрди рдкреВрдЫрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдкрдХреЛ рдкреАрд╕реА рдкрд░ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╣рд╛рде рд╕реЗ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХреЗ рджреМрд░рд╛рди рдЖрд╡реЗрджрдХ рдХреЛ рдПрдХ рдорд╛рд░реНрдХрд░ рдФрд░ рдПрдХ рд╡реНрд╣рд╛рдЗрдЯрдмреЛрд░реНрдб рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдХреЛрдИ рд╕рдВрдХреЗрдд рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрддреЗ рд╕рдордп, рдЕрдкрдирд╛ рдХреЛрдб рдХрд╛рдЧрдЬ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдкрд░ рдпрд╛ рд╕реАрдзреЗ рдмреЛрд░реНрдб рдкрд░ рд▓рд┐рдЦрдирд╛ рдЙрдЪрд┐рдд рд╣реИред рдЕрдЧрд░ рдЖрдк рд╣рд░ рдмрд╛рдд рдЕрдкрдиреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рд░рдЦреЗрдВрдЧреЗ рддреЛ рдЖрдк рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛рд░реНрдп

рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрд╛рд░реНрдп рд╕рдВрднрд╡рддрдГ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рдЖрдкрдХреЗ рдкрд╛рд╕ рдпрд╛ рддреЛ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдереЗ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдХреБрдЫ рд╕рдорд╛рди рд╣рд▓ рдХрд░рдирд╛ рдерд╛, рдпрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реАрдЦрддреЗ рд╕рдордп рдЙрди рдкрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░рдирд╛ рдерд╛ред рдЦреИрд░, рдЕрдм рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╡рд┐рд╕реНрддреГрдд рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд╕рд╛рдеред

рд╡рд┐рд▓реЛрдордкрдж

рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рдПрдХ рд╢рдмреНрдж, рд╡рд╛рдХреНрдп рдпрд╛ рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЕрдиреБрдХреНрд░рдо рд╣реИ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рджрд┐рд╢рд╛ рдФрд░ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рджреЛрдиреЛрдВ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдЕрдиреНрдирд╛" рдПрдХ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рд╣реИ, рд▓реЗрдХрд┐рди "рдЯреЗрдмрд▓" рдФрд░ "рдЬреЙрди" рдирд╣реАрдВ рд╣реИрдВред

рдордЪрд╛рди

рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреА рдЧрдИ; рдЖрдкрдХреЛ рдПрдХ рдРрд╕рд╛ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ рдпрджрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рд╣реИ рддреЛ рд╕рддреНрдп рд▓реМрдЯрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдирд╣реАрдВ рд╣реИ рддреЛ рдЕрд╕рддреНрдп рд▓реМрдЯрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдФрд░ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрдиреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред

рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо('рд░реЗрд╕рдХрд╛рд░') === рд╕рддреНрдп
рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо('рдЯреЗрдмрд▓') === рдЧрд▓рдд

рдЖрдЗрдП рдХрд╛рд░реНрдп рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ

рдпрд╣рд╛рдВ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЙрд▓реНрдЯрд╛ рдХрд░рдирд╛ рд╣реИред рдпрджрд┐ "рд░рд┐рд╡рд░реНрд╕" рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореВрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рдорд╛рди рд╣реИ, рддреЛ рд╣рдореЗрдВ рдПрдХ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рд╣реИ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рддреНрдп рд╡рд╛рдкрд╕ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдорд┐рдереНрдпрд╛ред

рд╕рдорд╛рдзрд╛рди

рдпрд╣рд╛рдВ рд╡рд╣ рдХреЛрдб рд╣реИ рдЬреЛ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

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

рдкрд╣рд▓рд╛ рдХрджрдо рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рд▓реЛрдЕрд░рдХреЗрд╕ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИред рдпрд╣ рдПрдХ рдЧрд╛рд░рдВрдЯреА рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкрд╛рддреНрд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рд╕реНрд╡рдпрдВ рдХрд░реЗрдЧрд╛, рди рдХрд┐ рдХреЗрд╕ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЪреАрдЬрд╝ рдХреАред

рджреВрд╕рд░рд╛ рдЪрд░рдг рд▓рд╛рдЗрди рдХреЛ рдЙрд▓реНрдЯрд╛ рдХрд░рдирд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ: рдЖрдкрдХреЛ рдЗрд╕реЗ .split() рд╡рд┐рдзрд┐ (рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдлрд┐рд░ рд╣рдо .revers() (рдРрд░реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд░реЗ рдХреЛ рдЙрд▓рдЯ рджреЗрддреЗ рд╣реИрдВред рдЕрдВрддрд┐рдо рдЪрд░рдг .join() (рдРрд░реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рд┐рд╡рд░реНрд╕ рдРрд░реЗ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╣реИред

рдЕрдм рдЖрдкрдХреЛ рдмрд╕ "рд░рд┐рд╡рд░реНрд╕" рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рддреБрд▓рдирд╛ рдореВрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдХрд░рдиреА рд╣реИ, рдкрд░рд┐рдгрд╛рдо рд╕рд╣реА рдпрд╛ рдЧрд▓рдд рд▓реМрдЯрд╛рдирд╛ рд╣реИред

рдлрд╝рд┐рдЬрд╝рдмрдЬрд╝

рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдореЗрдВ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХред

рдордЪрд╛рди

рдЖрдкрдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ 1 рд╕реЗ n рддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдХрдВрд╕реЛрд▓ рдкрд░ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ n рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИ рдЬрд┐рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд░реНрддреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ:

  • 3 рдХреЗ рдЧреБрдгрдХреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд┐рдЬрд╝;
  • 5 рдХреЗ рдЧреБрдгрдЬ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рдЖрдЙрдЯрдкреБрдЯ рдмрдЬрд╝;
  • рдЙрди рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рдлрд╝рд┐рдЬрд╝рдмрдЬрд╝ рдЖрдЙрдЯрдкреБрдЯ рдЬреЛ 3 рдФрд░ 5 рджреЛрдиреЛрдВ рдХреЗ рдЧреБрдгрдЬ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг

рдлрд╝рд┐рдЬрд╝рдмрдЬрд╝(5)

рдкрд░рд┐рдгрд╛рдо

// 1
// 2
// рдлрд╝рд┐рдЬрд╝
// 4
//рдЪрд░реНрдЪрд╛

рдЖрдЗрдП рдХрд╛рд░реНрдп рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ

рдпрд╣рд╛рдВ рдореБрдЦреНрдп рдмрд╛рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧреБрдгрдХреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕реЗ рдорд╛рдкрд╛рдВрдХ рдСрдкрд░реЗрдЯрд░ рдпрд╛ рд╢реЗрд╖рдлрд▓ - % рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рджреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╢реЗрд╖рдлрд▓ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рд╢реЗрд╖рдлрд▓ 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 рдХрдердиреЛрдВ рдХреЗ рдХреНрд░рдо рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЙрдЪрд┐рдд рд╣реИ: рдПрдХ рджреЛрд╣рд░реА рд╢рд░реНрдд (&&) рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдПрдХрд╛рдзрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдПрдВ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХреАрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдирд╛рдЧреНрд░рд╛рдо

рдпрд╣ рдПрдХ рдРрд╕реЗ рд╢рдмреНрдж рдХрд╛ рдирд╛рдо рд╣реИ рдЬрд┐рд╕рдореЗрдВ рджреВрд╕рд░реЗ рд╢рдмреНрдж рдХреЗ рд╕рднреА рдЕрдХреНрд╖рд░ рдПрдХ рд╣реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рдХреНрд░рдо рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВред

рдордЪрд╛рди

рд╣рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЬреЛ рдЬрд╛рдВрдЪ рдХрд░реЗ рдХрд┐ рдХреНрдпрд╛ рджреЛ рддрд╛рд░ рд╡рд┐рдкрд░реНрдпрдп рд╣реИрдВ, рдФрд░ рдорд╛рдорд▓рд╛ рдХреЛрдИ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ред рдХреЗрд╡рд▓ рд╡рд░реНрдг рдЧрд┐рдиреЗ рдЬрд╛рддреЗ рд╣реИрдВ; рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдпрд╛ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрдиреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд┐рдкрд░реНрдпрдп('рдЦреЛрдЬрдХрд░реНрддрд╛', 'рдорд┐рддреНрд░') тАФ> рд╕рддреНрдп
рдЕрдирд╛рдЧреНрд░рд╛рдо ('рд╣реИрд▓реЛ', 'рдЕрд▓рд╡рд┐рджрд╛') -> рдЧрд▓рдд

рдЖрдЗрдП рдХрд╛рд░реНрдп рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ

рдпрд╣рд╛рдВ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рджреЛ рдЗрдирдкреБрдЯ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЕрдХреНрд╖рд░ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрдЧреАред

рдЦреЛрдЬрдХ -> f: 1 рдорд┐рддреНрд░ -> f: 1
рдореИрдВ: 1 рдЖрд░: 1
рдПрди: 1 рдореИрдВ: 1
рдбреА: 1 рдИ: 1
рдИ: 1 рдПрди: 1
рдЖрд░: 1 рдбреА: 1

рдПрдирд╛рдЧреНрд░рд╛рдо рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓рд┐рдЯрд░рд▓ рдЬреИрд╕реА рд╕рдВрд░рдЪрдирд╛ рдЪреБрдирдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреБрдВрдЬреА рдЕрдХреНрд╖рд░ рдХрд╛ рдЪрд░рд┐рддреНрд░ рд╣реИ, рдорд╛рди рд╡рд░реНрддрдорд╛рди рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЗрд╕рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред

рдЕрдиреНрдп рд╢рд░реНрддреЗрдВ рднреА рд╣реИрдВ:

  • рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рдПред рд╣рдо рдмрд╕ рджреЛрдиреЛрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рд▓реЛрдЕрд░ рдпрд╛ рдЕрдкрд░ рдХреЗрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
  • рд╣рдо рд╕рднреА рдЧреИрд░-рд╡рд░реНрдгреЛрдВ рдХреЛ рддреБрд▓рдирд╛ рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрддреЗ рд╣реИрдВред рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐.

рд╕рдорд╛рдзрд╛рди

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

рдЙрдкрдпреЛрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ Object.keys () рдЙрдкрд░реЛрдХреНрдд рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВред рдпрд╣ рд╡рд┐рдзрд┐ рдирд╛рдо рдпрд╛ рдХреБрдВрдЬрд┐рдпреЛрдВ рд╡рд╛рд▓реА рдПрдХ рд╕рд░рдгреА рдЙрд╕реА рдХреНрд░рдо рдореЗрдВ рд▓реМрдЯрд╛рддреА рд╣реИ рдЬрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рд╡реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рд░рдгреА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧреА:

['рдПрдл', 'рдЖрдИ', 'рдПрди', 'рдбреА', 'рдИ', 'рдЖрд░']

рдЗрд╕ рддрд░рд╣ рд╣рдореЗрдВ рдмрд▓реНрдХ рд▓реВрдк рдХрд┐рдП рдмрд┐рдирд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдг рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ, рдЖрдк рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ .length рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рд╕рд╛рде рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рджреЛрдиреЛрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдореЗрдВ рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕рдорд╛рди рд╣реИ - рдпрд╣ рдПрдирд╛рдЧреНрд░рд╛рдо рдХреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред

рд╕реНрд╡рд░ рдЦреЛрдЬреЗрдВ

рдПрдХ рдХрд╛рдлреА рд╕рд░рд▓ рдХрд╛рд░реНрдп рдЬреЛ рдЕрдХреНрд╕рд░ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░реЛрдВ рдореЗрдВ рд╕рд╛рдордиреЗ рдЖрддрд╛ рд╣реИред

рдордЪрд╛рди

рдЖрдкрдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдореМрдЬреВрдж рд╕реНрд╡рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рд╕реНрд╡рд░ "рдП", "рдИ", "рдЖрдИ", "рдУ", "рдпреВ" рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг:

рдлрд╛рдЗрдВрдбрд╡реЛрд╡реЗрд▓реНрд╕('рд╣реИрд▓реЛ') // тАФ> 2
рдЦреЛрдЬ рд╕реНрд╡рд░('рдХреНрдпреЛрдВ') // тАФ> 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() рд╡рд┐рдзрд┐ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдФрд░ рдРрд░реЗ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрд┐рд╕реА рд╕рд░рдгреА рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рди рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рд╕рд░рдгреА рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рди рд╣реИ рддреЛ рдпрд╣ рд╡рд┐рдзрд┐ рд╕рддреНрдп рд▓реМрдЯрд╛рддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдирд╣реАрдВ рд╣реИ рддреЛ рдЧрд▓рдд рд▓реМрдЯрд╛рддреА рд╣реИред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ:

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

рдпрд╣ .match() рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдХреБрд╢рд▓ рдЦреЛрдЬ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рд╡рд┐рдзрд┐ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЕрдВрджрд░ рдкрд╛рдИ рдЬрд╛рддреА рд╣реИ, рддреЛ рд░рд┐рдЯрд░реНрди рдорд╛рди рдорд┐рд▓рд╛рди рд╡рд░реНрдгреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИред рдЦреИрд░, рдпрджрд┐ рдХреЛрдИ рдорд┐рд▓рд╛рди рдирд╣реАрдВ рд╣реИ, рддреЛ .match() рд╢реВрдиреНрдп рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдлрд┐рдмреЛрдиреИрдХреА

рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдХрд╛рд░реНрдп рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдкрд░ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░реЛрдВ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдлрд╛рдЗрдмреЛрдиреИрдЪрд┐ рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдЕрдЧрд▓рд╛ рдкрд┐рдЫрд▓реЗ рджреЛ рдХрд╛ рдпреЛрдЧ рд╣реИред рддреЛ, рдкрд╣рд▓реА рджрд╕ рд╕рдВрдЦреНрдпрд╛рдПрдБ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИрдВ: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34ред

рдордЪрд╛рди

рдЖрдкрдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдиреБрдХреНрд░рдо рдореЗрдВ nрд╡рд╛рдВ рд░рд┐рдХреЙрд░реНрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ n рд╡рд╣ рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред

рдлрд╛рдЗрдмреЛрдиреИрдЪрд┐(3) // тАФ> 2

рдЗрд╕ рдХрд╛рд░реНрдп рдореЗрдВ рддрд░реНрдХ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд▓реВрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рдирд╛, рдЙрдЪрд┐рдд рд╕реНрдерд┐рддрд┐ рдкрд░ рдорд╛рди рд▓реМрдЯрд╛рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рдЗрд╕ рддрд░реАрдХреЗ рдХреЗ рд▓рд┐рдП рд▓реВрдк рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд░рд┐рдХрд░реНрд╕рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░рдХрд░реНрддрд╛ рдХреЛ рдЦреБрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдВрдХ рджреЗ рд╕рдХрддрд╛ рд╣реИред

рд╕рдорд╛рдзрд╛рди

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

рдкрд░рд┐рдгрд╛рдо рд╕рд░рдгреА рдореЗрдВ, рдкрд╣рд▓реЗ рджреЛ рдирдВрдмрд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдкрд┐рдЫрд▓реА рджреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдпреЛрдЧ рд╣реЛрддреА рд╣реИред рд╢реБрд░реБрдЖрдд рдореЗрдВ рдРрд╕реЗ рджреЛ рдирдВрдмрд░ рдирд╣реАрдВ рд╣реЛрддреЗ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдЧрд▓рд╛ рдирдВрдмрд░ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЗрд╕рд▓рд┐рдП рд▓реВрдк рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рджреЛ рдирдВрдмрд░ рд╣рдореЗрд╢рд╛ 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)
}

рд╣рдо рдлрд╛рдЗрдмреЛрдиреИрдЪрд┐() рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд░рд╣рддреЗ рд╣реИрдВ, рдЫреЛрдЯреА рдФрд░ рдЫреЛрдЯреА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд░рд╣рддреЗ рд╣реИрдВред рдЬрдм рдкрд╛рд░рд┐рдд рддрд░реНрдХ 0 рдпрд╛ 1 рд╣реЛ рддреЛ рд╣рдо рд░реБрдХ рдЬрд╛рддреЗ рд╣реИрдВред

рдЙрддреНрдкрд╛рджрди

рдпрджрд┐ рдЖрдкрдХреЛ рдлреНрд░рдВрдЯрдПрдВрдб рдпрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреЗрд╡рд▓рдкрд░ рдиреМрдХрд░реА рдХреЗ рд▓рд┐рдП рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдпрджрд┐ рдпрд╣ рдХрдирд┐рд╖реНрда рд╕реНрддрд░ рдкрд░ рд╣реИ) рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдкрдиреЗ рдЙрдирдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╡реЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ - рдХрдо рд╕реЗ рдХрдо рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдПред

рд╕реНрдХрд┐рд▓рдмреЙрдХреНрд╕ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ:

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ