рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ 1.8

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ 1.8 рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЙрддреНрд╕рд╛рд╣реА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ рд╕рд┐рдиреНрдереЗрдЯрд┐рдХ рдЪреАрдиреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдХрдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕ рд╕реБрдВрджрд░рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреНрд░реЛрдо рднреА рдЗрди рд╕рднреА рдЕрдЪреНрдЫрд╛рдЗрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдЖрдИрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд╣рдирд╛?), рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 3+, рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреЗрд╡рд▓рдкрд░ рдмрд╕ рдЗрди рд╕рднреА рдирдП рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИред



рдПрдордбреАрдПрди рдкрд░ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдкреВрд░реА рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓ рд╕рдХрддреА рд╣реИ:



рдФрд░ рдореИрдВрдиреЗ рдЬреЙрди рд░реЗрд╕рд┐рдЧ (jQuery рдХреЗ рд▓реЗрдЦрдХ) рджреНрд╡рд╛рд░рд╛ рдПрдХ рдЫреЛрдЯрд╛ рд▓реЗрдХрд┐рди рджрд┐рд▓рдЪрд╕реНрдк рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛, рдЬреЛ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░рддрд╛ рд╣реИ: рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреНрд▓реЛрдЬрд░, рдЬреЗрдирд░реЗрдЯрд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕, __iterator__, рдРрд░реЗ рд░рд┐рдбреНрдпреВрд╕ рдФрд░ рдХреБрдЫ рдЕрдиреНрдп:



//    - document.addEventListener("click", function() false, true); //    for ( let i in 3 ) alert( i ); //    100 ,   [ 0 for ( i in 100 ) ]; //    10*10 [[ i == j ? 1 : 0 for ( i in 10 ) ] for ( j in 10 )];
      
      







рд╣рд╛рд▓рд╛рдВрдХрд┐ рд▓реЗрдЦ 2007 рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд░реВрд╕реА рднрд╛рд╖рд╛ рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рд░реВрд╕реА рдореЗрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕рднреА рдХреЛрдб рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 3+ рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред



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



рдпрджрд┐ рдЖрдкрдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ 1.8 рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдкреНрд░рдЧрддрд┐ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рддреНрд╡рд░рд┐рдд рдЕрд╡рд▓реЛрдХрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 3 рдХреЗ рд░рд╛рдд рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╣реИред

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



рд▓реЗрдХреНрд╕рд┐рдХрд▓ рдХреНрд▓реЛрдЬрд░ (рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХреНрд▓реЛрдЬрд░)



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

рдЖрдЗрдП рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рдВрдмреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:



рдЕрдЬрдЧрд░:
 lambda x: x * x
      
      





рд╕реНрдорд╛рд▓рдЯрд╛рдХ:
 [ :x | x * x ]
      
      





рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ 1.8:
 function(x) x * x
      
      





рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ 1.7 рдФрд░ рдмрд╛рдж рдореЗрдВ:
 function(x) { return x * x; }
      
      







рд╢рд╛рдпрдж рдореЗрд░рд╛ рдкрд╕рдВрджреАрджрд╛ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ рд╣реИ:

 document.addEventListener("click", function() false, true);
      
      





рдпрд╛ рдЗрд╕ рд╕рдВрдХреЗрддрди рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ 1.6 рд╕реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ:

 elems.some(function(elem) elem.type == "text");
      
      





рдпрд╣ рдЖрдкрдХреЛ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг JS / DOM рдХреЛрдб рджреЗрдЧрд╛ред



рдЬреЗрдирд░реЗрдЯрд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди



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

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



рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрд░реНрде рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рд╕реБрдбреЛрдХреВ рд╕реЙрд▓реНрд╡рд░ рд╕реЗ рд▓рд┐рдП рдЧрдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ 1.8 рдХреЛрдб рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред

 dict([s, [u for (u in unitlist) if (u.contains(s))]] for (s in squares))
      
      





рдпрд╣ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рддрд╛рдирд╛рд╢рд╛рд╣реА () рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ, рдЬреЛ 2xN рдореИрдЯреНрд░рд┐рдХреНрд╕ рд▓реЗрддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХ рдХреБрдВрдЬреА / рдорд╛рди рдпреБрдЧреНрдо рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреА рд╣реИред рдпрд╣рд╛рдБ рдЙрд╕рдХрд╛ рдХреЛрдб рд╣реИ:

 function dict(A) { let d = {} for (let e in A) d[e[0]] = e[1] return d }
      
      





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

 [u for (u in unitlist) if (u.contains(s))]
      
      





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

рдФрд░ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдПрдБ рдЬрд┐рд╕рдореЗрдВ s рд╣реЛред

 [s, ...] for (s in squares)
      
      





рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рд╕рд░рдгреА рдкреАрдврд╝реА рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ 1.7 рдХреА рдПрдХ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ - рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рд╣реИред

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

 dict([s, ...] for (s in squares))
      
      





рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдЬрд╛рджреВ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ 1.7 рдореЗрдВ, рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрдорд╛рдВрдб () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 dict([[s, ...] for (s in squares)])
      
      





рд╕реВрдЪреА рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕реНрдкрд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдЕрддрд┐рд░рд┐рдХреНрдд рдкреАрдврд╝реА рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреВрд░реЗ рд╕рд░рдгреА (рдЬреЛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ / рд╣реИрд╢ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ) рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдФрд░ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ [...] рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐-рдЬрдирд░реЗрдЯрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИред рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реЗрдЦрд╛ 1.8 рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдХреЗ рдмрд░рд╛рдмрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ 1.8 рдореЗрдВ рдмрдирд╛рддрд╛ рд╣реИ:

 dict((function(){ for (s in squares) yield [s, ...] ; })())
      
      







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



рдпрд╣рд╛рдБ рдПрдХ рдЬрдирд░реЗрдЯрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рд╣реИ:



 //  ,      function val_iter(obj) { return (obj[x] for (x in obj)); } //     for ( let key in obj ) { ... } //     for ( let value in val_iter(obj) ) { ... }
      
      







рдмреЗрд╢рдХ, Val_iter () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ 1.7 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрдкрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ:



 function val_iter(obj) { for (let x in obj) yield obj[x]; }
      
      







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



рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдордЬрд╝рд╛ рдЖ рд░рд╣рд╛ рд╣реИ





рд╡реИрд╕реЗ, рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдФрд░ рдЬрдирд░реЗрдЯрд░ рд╕реЗ рдирд┐рдкрдЯрд╛ рд╣реИ - рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 0-9) рдкрд░ рдмрд╕ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд╣реИред рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рднрд╛рд╖рд╛ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:



 //      Number.prototype.__iterator__ = function() { for ( let i = 0; i < this; i++ ) yield i; }; //    for ( let i in 3 ) alert( i ); //    100 ,   [ 0 for ( i in 100 ) ] //    10*10 [[ i == j ? 1 : 0 for ( i in 10 ) ] for ( j in 10 )]
      
      







рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рд╡рд╣ рдХрддреНрд▓реЗрдЖрдо рдХрд░ рд░рд╣рд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдмрд╛рдд рдкрд░ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдЦреБрд╢ рдерд╛ред



рдРрд░реЗ рдХрдо рдХрд░реЗрдВ



рдЕрдВрддрд┐рдо рдмрд╛рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдИ Array.reduce / Array.prototype.reduce рд╡рд┐рдзрд┐рдпрд╛рдБ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ 1.6 рд╕рд░рдгреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рд╣реИрдВред



рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рдРрд░реЗ рдкрд░ рдЕрдкреНрд▓рд╛рдИ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 someArray.reduce( fn [, initial] );
      
      







рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд╕рд╛рде, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

 someArray.reduce(function(lastValue, curValue){ return lastValue + curValue; });
      
      







рддрд░реНрдХ "lastValue" рдХрдо рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХреЙрд▓рдмреИрдХ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдЬрдм рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, lastValue рд╕реВрдЪреА рдХреЗ рдкрд╣рд▓реЗ рддрддреНрд╡ рдпрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХреЗ рдореВрд▓реНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛, рдпрджрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ curValue рдХрд╛ рдореВрд▓реНрдп рд╕реВрдЪреА рдХреЗ рдЕрдЧрд▓реЗ рддрддреНрд╡ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛



рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдЖрдк 0 рд╕реЗ 99 рддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ 1.8 рдФрд░ рдЙрдкрд░реЛрдХреНрдд рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)

 [x for ( x in 100 )].reduce(function(a,b) a+b);
      
      







рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг, рд╣реИ рдирд╛?



рдЖрдк рдХрдИ DOM рдиреЛрдбреНрд╕ рдХреЛ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдорд░реНрдЬ рдХрд░рдиреЗ рдЬреИрд╕реА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдо рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 nodes.reduce(function(a,b) a.concat(b.childNodes), []);
      
      







рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдХреЛрд╢рд┐рд╢ рдХрд░реЛ!



рдЬреЛ рдХреБрдЫ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 3 рдХреЗ рдирд╡реАрдирддрдо рд░рд╛рдд рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдПрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░реЗрдВ:

1. рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 3 рдХреЗ рд░рд╛рдд рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

2. рдПрдХ рдРрд╕рд╛ рдкреЗрдЬ рдмрдирд╛рдПрдБ рдЬрд┐рд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреИрдЧ рд╣реЛрдВ (рд╡рд┐рд╢реЗрд╖рддрд╛ 'рд╕рдВрд╕реНрдХрд░рдг = 1.8' рдЬреЛ рдЕрднреА рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ):

 <script type="application/javascript;version=1.8"> ... your code ...</script>
      
      





рдФрд░ рдпрд╣ рд╕рдм рд▓реЗрддрд╛ рд╣реИ - рдЖрдирдВрдж!



All Articles