5 рд╡рд┐рд╢рд┐рд╖реНрдЯ JavaScript рдЕрдиреНрддрд░реНрд╡рд╛рд░реНрддрд╛ рдХрд╛рд░реНрдпрд╣рд░реВ: рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд░ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ

5 рд╡рд┐рд╢рд┐рд╖реНрдЯ JavaScript рдЕрдиреНрддрд░реНрд╡рд╛рд░реНрддрд╛ рдХрд╛рд░реНрдпрд╣рд░реВ: рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд░ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ

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

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

рдпрд╕рдмрд╛рд╣реЗрдХ, рдкреНрд░рд╛рдпрдЬрд╕реЛ, рдпреА рдзреЗрд░реИ рдЬрд╕реЛ рдХрд╛рд░реНрдпрд╣рд░реВ рдЖрд╡реЗрджрдХрд▓реЗ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗ рдХрд╛рдорд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫреИрдирдиреН, рддрд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЕрдЭреИ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рддрдкрд╛рдИрд▓реЗ рдпрд╕рд▓рд╛рдИ рдмреЛрд░реНрдбрдорд╛ рдЧрд░реНрдиреБ рдкрд░реНрдЫ, Google рд╡рд╛ рдХреБрдиреИ рдЕрдиреНрдп рд╕реНрд░реЛрддрд╕рдБрдЧ рдЬрд╛рдБрдЪ рдирдЧрд░реАред рд╣реЛ, рд╕реНрдерд┐рддрд┐ рдмрд┐рд╕реНрддрд╛рд░реИ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдБрджреИрдЫ, рд░ рдХреЗрд╣рд┐ рдХрдореНрдкрдиреАрд╣рд░реВрд▓реЗ рдпрд╕реНрддрд╛ рдЕрдиреНрддрд░реНрд╡рд╛рд░реНрддрд╛рд╣рд░реВ рддреНрдпрд╛рдЧреЗрдХрд╛ рдЫрдиреН, рддрд░ рдзреЗрд░реИ рдирд┐рдпреЛрдХреНрддрд╛рд╣рд░реВ рдЕрдЭреИ рдкрдирд┐ рдпреЛ рдкрд░рдореНрдкрд░рд╛ рдкрд╛рд▓рди рдЧрд░реНрдЫрдиреНред рдпреЛ рд▓реЗрдЦ рд╕рд╛рдорд╛рдиреНрдп JavaScript рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрди рд╕рдорд░реНрдкрд┐рдд рдЫ рдЬреБрди рдкреНрд░рд╛рдп: рдЬрд╛рдЧрд┐рд░ рдЦреЛрдЬреНрдиреЗрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рд╣рд╛рдореА рд╕рдореНрдЭрд╛рдЙрдБрдЫреМрдВ: рд╕рдмреИ Habr рдкрд╛рдардХрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ - Habr рдкреНрд░реЛрдореЛ рдХреЛрдб рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдХреБрдиреИ рдкрдирд┐ Skillbox рдкрд╛рдареНрдпрдХреНрд░рдордорд╛ рднрд░реНрдирд╛ рдЧрд░реНрджрд╛ резреж,режрежреж рд░реВрдмрд▓ рдЫреБрдЯред

Skillbox рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджрдЫ: рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкрд╛рдареНрдпрдХреНрд░рдо "рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдкреНрд░реЛ".

рдореБрдЦреНрдп рдХреБрд░рд╛ рддрдкрд╛рдИрдХреЛ рдЕрдиреНрддрд░реНрд╡рд╛рд░реНрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд░рд╛рдореНрд░рд░реА рддрдпрд╛рд░реА рдЧрд░реНрдиреБ рд╣реЛред

рд╣реЛ, рд╣рд╛рдореАрд▓реЗ рдХрд╛рд░реНрдпрд╣рд░реВ рд╣реЗрд░реНрди рд╕реБрд░реБ рдЧрд░реНрдиреБ рдЕрдШрд┐, рдХреЗрд╣реА рд╕рд╛рдорд╛рдиреНрдп рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рддрдпрд╛рд░реА рд╕реБрдЭрд╛рд╡рд╣рд░реВ рд╣реЗрд░реМрдВред

рдореБрдЦреНрдп рдХреБрд░рд╛ рдЕрдЧреНрд░рд┐рдо рддрдпрд╛рд░реА рдЫред рддрдкрд╛рдИрдВрд▓реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВ рдХрддреНрддрд┐рдХреЛ рд░рд╛рдореНрд░рд░реА рд╕рдореНрдЭрдиреБ рднрдПрдХреЛ рдЫ рднрдиреА рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд░ рддрдкрд╛рдИрдВ рдкрд░рд┐рдЪрд┐рдд рдирднрдПрдХрд╛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдорд╛ рдЖрдлреНрдиреЛ рдЬреНрдЮрд╛рди рд╕реБрдзрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдЕрдирд▓рд╛рдЗрди рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВ рдЫрдиреН рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЕрдиреНрддрд░реНрд╡рд╛рд░реНрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рддрдпрд╛рд░реА рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрди рд╕рдХреНрдЫред рд╣рд╛рдореА рд╕рд▓реНрд▓рд╛рд╣ рджрд┐рдиреНрдЫреМрдВ geeksforgeeks, рдкреНрд░рд╛рдореНрдк, Interviewing.io ╨╕ рдХреЛрдбрд╕рд┐рдЧреНрдирд▓.

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

рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╕реБрд░реБ рдЧрд░реНрдиреБ рдЕрдШрд┐ рддрдкрд╛рдИрдВрд▓реЗ рд╕рдорд╕реНрдпрд╛ рдмреБрдЭреНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдХреЗрд╣рд┐ рдЕрд╡рд╕реНрдерд╛рдорд╛, рддрдкрд╛рдЗрдБ рд╕рддрд╣реА рд░реВрдкрдорд╛ рдХрд╛рд░реНрдп рдмреБрдЭреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рддреНрдпрд╕рдкрдЫрд┐ рдЧрд▓рдд рдмрд╛рдЯреЛрдорд╛ рдЬрд╛рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпреЛ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░рдХрд░реНрддрд╛рд▓рд╛рдИ рдХреЗрд╣рд┐ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рд╢реНрдирд╣рд░реВ рд╕реЛрдзреНрди рд▓рд╛рдпрдХ рд╣реБрди рд╕рдХреНрдЫред

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

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

рдпреА рдордзреНрдпреЗ рдХреЗрд╣реА рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рд╛рдпрдж рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкрд╣рд┐рд▓реЗ рдиреИ рдкрд░рд┐рдЪрд┐рдд рдЫрдиреНред рддрдкрд╛рдИрдВрд▓реЗ рдпрд╛ рдд рдЕрдиреНрддрд░реНрд╡рд╛рд░реНрддрд╛ рд▓рд┐рдиреБрднрдПрдХреЛ рдЫ рдЬрд╣рд╛рдБ рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕реНрддреИ рдХреЗрд╣рд┐ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреБ рдкрд░реЗрдХреЛ рдерд┐рдпреЛ, рд╡рд╛ JavaScript рд╕рд┐рдХреНрджреИ рдЧрд░реНрджрд╛ рддрд┐рдиреАрд╣рд░реВрдорд╛ рдЕрднреНрдпрд╛рд╕ рдЧрд░реНрдиреБрднрдпреЛред рдареАрдХ рдЫ, рдЕрдм рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдлреЗрд░рд┐ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреЗ рд╕рдордп рд╣реЛ, рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд╡рд┐рд╕реНрддреГрдд рд╡реНрдпрд╛рдЦреНрдпрд╛рдХреЛ рд╕рд╛рдеред

рдкрд╛рд▓рд┐рдиреНрдбреНрд░реЛрдо

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

рд╕реНрдЯреЗрдЬрд┐рдВрдЧ

рд╕реНрдЯреНрд░рд┐рдЩ рджрд┐рдЗрдПрдХреЛ; рддрдкрд╛рдИрдБрд▓реЗ рдПрдЙрдЯрд╛ рдкреНрд░рдХрд╛рд░реНрдп рд▓реЗрдЦреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдБрд▓рд╛рдИ рдпрджрд┐ рд╕реНрдЯреНрд░рд┐рдЩ рдкреНрдпрд╛рд▓рд┐рдиреНрдбреНрд░реЛрдо рд╣реЛ рднрдиреЗ рд╕рд╣реА рдлрд░реНрдХрд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рд░ рдпрджрд┐ рд╣реЛрдЗрди рднрдиреЗ рдЧрд▓рддред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рддрдкрд╛рдИрдВрд▓реЗ рдЦрд╛рддрд╛ рдЦрд╛рд▓реА рдард╛рдЙрдБрд╣рд░реВ рд░ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрдирд╣рд░реВ рд▓рд┐рди рдЖрд╡рд╢реНрдпрдХ рдЫред

palindrome('racecar') === рд╕рддреНрдп
palindrome('table') === рдЧрд▓рдд

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

рдпрд╣рд╛рдБ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рд╕реНрдЯреНрд░рд┐рдЩ рдЙрд▓реНрдЯреЛ рдЫред рдпрджрд┐ "рд░рд┐рднрд░реНрд╕" рд╕реНрдЯреНрд░рд┐рдЩ рдореВрд▓рд╕рдБрдЧ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рдорд╛рди рдЫ рднрдиреЗ, рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рдкреНрдпрд╛рд▓рд┐рдиреНрдбреНрд░реЛрдо рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрдХрд╛ рдЫреМрдВ рд░ рдкреНрд░рдХрд╛рд░реНрдп рд╕рддреНрдпрдорд╛ рдлрд░реНрдХрдиреБрдкрд░реНрдЫред рдпрджрд┐ рд╣реЛрдЗрди рднрдиреЗ, рдЧрд▓рддред

рдирд┐рд░реНрдгрдп

рдпрд╣рд╛рдБ рдХреЛрдб рд╣реЛ рдЬрд╕рд▓реЗ рдкреНрдпрд╛рд▓рд┐рдиреНрдбреНрд░реЛрдо рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджрдЫред

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() рд╡рд┐рдзрд┐ (рд╕реНрдЯреНрд░рд┐рдЩ рд▓рд╛рдЗрдмреНрд░реЗрд░реА) рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдПрд░реЗрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА .reverse() (Array library) рдХреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ array рд▓рд╛рдИ рд░рд┐рднрд░реНрд╕ рдЧрд░реНрдЫреМрдВред рдЕрдиреНрддрд┐рдо рдЪрд░рдг рднрдиреЗрдХреЛ .join() (Array library) рдХреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд░рд┐рднрд░реНрд╕ рдПрд░реЗрд▓рд╛рдИ рд╕реНрдЯреНрд░рд┐рдЩрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреБ рд╣реЛред

рдЕрдм рддрдкрд╛рдИрд▓реЗ рдЧрд░реНрдиреБ рдкрд░реНрдиреЗ рднрдиреЗрдХреЛ "рд░рд┐рднрд░реНрд╕" рд╕реНрдЯреНрд░рд┐рдЩрд▓рд╛рдИ рдореВрд▓ рд╕реНрдЯреНрд░рд┐рдЩрд╕рдБрдЧ рддреБрд▓рдирд╛ рдЧрд░реНрдиреБ рд╣реЛ, рдирддрд┐рдЬрд╛ рд╕рд╣реА рд╡рд╛ рдЧрд▓рдд рдлрд░реНрдХрд╛рдПрд░ред

FizzBuzz

рдЕрдиреНрддрд░реНрд╡рд╛рд░реНрддрд╛рдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдХрд╛рд░реНрдпрд╣рд░реВ рдордзреНрдпреЗ рдПрдХред

рд╕реНрдЯреЗрдЬрд┐рдВрдЧ

рддрдкрд╛рдИрд▓реЗ рдПрдЙрдЯрд╛ рдкреНрд░рдХрд╛рд░реНрдп рд▓реЗрдЦреНрдиреБ рдкрд░реНрдЫ рдЬрд╕рд▓реЗ 1 рджреЗрдЦрд┐ n рд╕рдореНрдордХреЛ рд╕рдВрдЦреНрдпрд╛рд╣рд░реВ рдХрдиреНрд╕реЛрд▓рдорд╛ рдкреНрд░рд┐рдиреНрдЯ рдЧрд░реНрджрдЫ, рдЬрд╣рд╛рдБ n рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реЛ рдЬреБрди рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рдирд┐рдореНрди рд╕рд░реНрддрд╣рд░реВрд╕рдБрдЧ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рдХреЛ рд░реВрдкрдорд╛ рд▓рд┐рдиреНрдЫ:

  • 3 рдХреЛ рдЧреБрдгрдирд╣рд░реВрдХреЛ рд╕рдЯреНрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдлрд┐рдЬ;
  • 5 рдХреЛ рдЧреБрдгрди рднрдПрдХрд╛ рд╕рдВрдЦреНрдпрд╛рд╣рд░реВрдХреЛ рд╕рдЯреНрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдмрдЬ;
  • 3 рд░ 5 рджреБрд╡реИ рдХреЛ рдЧреБрдгрди рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдЯреНрдЯрд╛ fizzbuzz рдЖрдЙрдЯрдкреБрдЯред

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

Fizzbuzz(5)

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

// реирежреж 1
// реирежреж 2
// рдлрд┐рдЬ
// реирежреж 4
//buzz

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

рдпрд╣рд╛рдБ рдореБрдЦреНрдп рдХреБрд░рд╛ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЧреБрдгрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреЗ рддрд░рд┐рдХрд╛ рд╣реЛред рдпрд╕рд▓рд╛рдИ рдореЛрдбреБрд▓рд╕ рдЕрдкрд░реЗрдЯрд░ рд╡рд╛ рдмрд╛рдБрдХреА - % рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рджреБрдИ рд╕рдВрдЦреНрдпрд╛рд╣рд░реВ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрджрд╛ рдмрд╛рдБрдХреА рджреЗрдЦрд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдпрджрд┐ рдмрд╛рдБрдХреА реж рд╣реЛ рднрдиреЗ, рдпрд╕рдХреЛ рдорддрд▓рдм рдкрд╣рд┐рд▓реЛ рдирдореНрдмрд░ рджреЛрд╕реНрд░реЛрдХреЛ рдЧреБрдгрди рд╣реЛред

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 рдХрдердирд╣рд░реВрдХреЛ рдХреНрд░рдордорд╛ рдзреНрдпрд╛рди рджрд┐рди рд▓рд╛рдпрдХ рдЫ: рджреЛрд╣реЛрд░реЛ рдЕрд╡рд╕реНрдерд╛ (&&) рдмрд╛рдЯ рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдзреЗрд░реИ рд╕рдВрдЦреНрдпрд╛рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдПрди рднрдиреЗ рдХреЗрд╕рд╕рдБрдЧ рдЕрдиреНрддреНрдп рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рд╣рд╛рдореА рд╕рдмреИ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдХрднрд░ рдЧрд░реНрдЫреМрдВред

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

рдпреЛ рдПрдЙрдЯрд╛ рд╢рдмреНрджрдХреЛ рдирд╛рдо рд╣реЛ рдЬрд╕рдорд╛ рдЕрд░реНрдХреЛ рд╢рдмреНрджрдХрд╛ рд╕рдмреИ рдЕрдХреНрд╖рд░рд╣рд░реВ рдПрдЙрдЯреИ рдирдореНрдмрд░рдорд╛ рд╣реБрдиреНрдЫрдиреН рддрд░ рдлрд░рдХ рдХреНрд░рдордорд╛ред

рд╕реНрдЯреЗрдЬрд┐рдВрдЧ

рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рдкреНрд░рдХрд╛рд░реНрдп рд▓реЗрдЦреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдЬрд╕рд▓реЗ рдЬрд╛рдБрдЪ рдЧрд░реНрджрдЫ рдХрд┐ рджреБрдИ рд╕реНрдЯреНрд░рд┐рдЩ рдПрдирд╛рдЧреНрд░рд╛рдо рд╣реЛ рдХрд┐ рдЫреИрди, рд░ рдХреЗрд╕ рдлрд░рдХ рдкрд░реНрджреИрдиред рдХреЗрд╡рд▓ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВ рдЧрдирд┐рдиреНрдЫрдиреН; рдЦрд╛рд▓реА рдард╛рдЙрдБрд╣рд░реВ рд╡рд╛ рд╡рд┐рд░рд╛рдо рдЪрд┐рдиреНрд╣рд╣рд░реВрд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦрд┐рдПрдХреЛ рдЫреИрдиред

anagram('finder', 'Friend') тАФ> рд╕рд╛рдБрдЪреЛ
anagram ('hello', 'bye') -> рдЧрд▓рдд

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

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

рдЦреЛрдЬрдХрд░реНрддрд╛ -> f: 1 рдорд┐рддреНрд░ -> f: 1
i: 1 r: 1
n: 1 i: 1
d: 1 e: 1
e: 1 n: 1
r: 1 d: 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() рдорд╛рдерд┐рдХреЛ рд╕реНрдирд┐рдкреЗрдЯрдорд╛ред рдпреЛ рд╡рд┐рдзрд┐рд▓реЗ рд╡рд╕реНрддреБрдорд╛ рджреЗрдЦрд┐рдиреЗ рдХреНрд░рдордорд╛ рдирд╛рдо рд╡рд╛ рдХреБрдЮреНрдЬреАрд╣рд░реВ рднрдПрдХреЛ рдПрд░реЗ рдлрд░реНрдХрд╛рдЙрдБрдЫред рдпрд╕ рдорд╛рдорд▓рд╛ рдорд╛ array рдпрд╕реНрддреЛ рд╣реБрдиреЗрдЫ:

['f', 'i', 'n', 'd', 'e', тАЛтАЛ'r']

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

рд╕реНрд╡рд░рд╣рд░реВ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН

рдПрдХ рдПрдХрджрдо рд╕рд░рд▓ рдХрд╛рд░реНрдп рдЬреБрди рдЕрдХреНрд╕рд░ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдорд╛ рдЖрдЙрдБрдЫред

рд╕реНрдЯреЗрдЬрд┐рдВрдЧ

рддрдкрд╛рдИрдВрд▓реЗ рдПрдЙрдЯрд╛ рдкреНрд░рдХрд╛рд░реНрдп рд▓реЗрдЦреНрдиреБ рдкрд░реНрдЫ рдЬрд╕рд▓реЗ рд╕реНрдЯреНрд░рд┐рдЩрд▓рд╛рдИ рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛ рд▓рд┐рдиреНрдЫ рд░ рд╕реНрдЯреНрд░рд┐рдЩрдорд╛ рд╕рдорд╛рд╡реЗрд╢ рднрдПрдХрд╛ рд╕реНрд╡рд░рд╣рд░реВрдХреЛ рд╕рдЩреНрдЦреНрдпрд╛ рдлрд░реНрдХрд╛рдЙрдБрдЫред
рд╕реНрд╡рд░рд╣рд░реВ тАЬaтАЭ, тАЬeтАЭ, тАЬiтАЭ, тАЬoтАЭ, тАЬuтАЭ рд╣реБрдиреНред

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

FindVowels('hello') // тАФ> реи
FindVowels('рдХрд┐рди') // тАФ> реж

рдирд┐рд░реНрдгрдп

рдпрд╣рд╛рдБ рд╕рд░рд▓ рд╡рд┐рдХрд▓реНрдк рдЫ:

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() рд╡рд┐рдзрд┐рдХреЛ рдкреНрд░рдпреЛрдЧрдорд╛ рдзреНрдпрд╛рди рджрд┐рдиреБ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫред рдпреЛ рд╕реНрдЯреНрд░рд┐рдЩ рд░ arrays рджреБрд╡реИ рд▓рд╛рдЧрд┐ рдЙрдкрд▓рдмреНрдз рдЫред рдПрд░реЗрдорд╛ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рди рд╕рдорд╛рд╡реЗрд╢ рдЫ рдХрд┐ рдЫреИрди рднрдиреА рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рдпреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреБрдкрд░реНрдЫред рдпрджрд┐ рдПрд░реЗрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рди рд╕рдорд╛рд╡реЗрд╢ рдЫ рднрдиреЗ рдпреЛ рд╡рд┐рдзрд┐ рд╕рд╣реА рд╣реБрдиреНрдЫ, рд░ рдпрджрд┐ рдЫреИрди рднрдиреЗ рдЧрд▓рддред

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

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 рдХреЛ рд╕рдВрдЦреНрдпрд╛ рд╣реЛ рдЬреБрди рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛ рдкрд╛рд░рд┐рдд рд╣реБрдиреНрдЫред

рдлрд┐рдмреЛрдирд╛рдЪреА(рей) // тАФ> реи

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

рдирд┐рд░реНрдгрдп

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

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

рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдХреЛ рд▓рд╛рдЧрд┐, рд╕рдмреИ рдХреБрд░рд╛ рдПрдХреИ рд╕рдордпрдорд╛ рд╕рд░рд▓ рд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЫ:

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() рд▓рд╛рдИ рдХрд▓ рдЧрд░рд┐рд░рд╣рдиреНрдЫреМрдВ, рд╕рд╛рдирд╛ рд░ рд╕рд╛рдирд╛ рд╕рдВрдЦреНрдпрд╛рд╣рд░реВ рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛ рдкрд╛рд░ рдЧрд░реНрджреИред рдЬрдм рдкрд╛рд╕ рдЧрд░рд┐рдПрдХреЛ рддрд░реНрдХ реж рд╡рд╛ рез рд╣реБрдиреНрдЫ рд╣рд╛рдореА рд░реЛрдХреНрдЫреМрдВред

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

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

Skillbox рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджрдЫ:

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди