ΠΠ΅ΡΠ΅Π²ΠΎΠ΄
ΠΠ°Ρ ΠΎΠΏΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΡΠ°ΠΌΠΎΡΡΠΊΠΈ ΡΠ°ΡΠ΅ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π΅ Π½Π° ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ, Π° Π½Π° ΡΠ²ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ.
ΠΠ²ΡΠΈΡΡΠΈΠΊΠ° β ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΡΠ½Π΅Ρ ΠΈΠ· ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎ, Π½ΠΎ Π² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΠΌΠ΅ΡΠ΅, ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΡΡ ΡΠ΅ΡΡΡΠ·Π½ΡΡ ΡΠ°Π·ΠΌΡΡΠ»Π΅Π½ΠΈΠΉ. ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ²ΡΠΈΡΡΠΈΠΊΠΈ:
- Β«ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ
$(document).ready(function(){})
Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π½Π° jQuery-ΡΠ°ΠΉΡΠ°Ρ Β» - Β«ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ
var self = this
Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°Β» - Β«Π£ ΡΡΡΠ΅Π»ΠΎΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²
return
Β»
Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠ½ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎ Π²Π΅ΡΠ΅Π½ ΠΈ ΡΠ°ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°ΠΌΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΠ°Π±ΠΎΡΡ ΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. Π ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΡΠ΅Π»ΠΎΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ API-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΊ Lodash ΠΡΠ°Π²ΠΈΠ»Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ vertical-align
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΌΡ Π·Π°ΠΊΠ»ΡΡΠΈΠ»ΠΈ Π² ΠΊΠ°Π²ΡΡΠΊΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ²ΡΠΈΡΡΠΈΠΊΠΈ β Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½ΡΡΡ ΠΊΡΡΡΠ°ΡΠ½ΡΠΉ Ρ
Π°ΡΠ°ΠΊΡΠ΅Ρ ΡΠ²ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠΎ ΡΡΡΠΎΠ³ΠΎΡΡΡΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΎΡΠ½ΠΎΠ². ΠΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΡΠ²ΡΠΈΡΡΠΈΠΊΠΈ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΠ»ΡΡΠ°Π΅Π², Π½ΠΎ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΡΠΈΡΡΠ°ΡΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΠΈΠ΅ ΠΈΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Π»ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠΎΠ΄ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ Π² ΠΏΠΎΠ»ΡΠ·Ρ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°
ΠΡ ΡΠ°ΡΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π΅ ΡΠΊΠ»ΠΎΠ½Π½Ρ ΡΠ΅ΡΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ². ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π² Π½Π°ΡΠ°Π»Π΅ ΠΊΠ°ΡΡΠ΅ΡΡ Ρ Π½ΠΈΡ Π½Π΅ Π±ΡΠ»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΡ Π²ΡΡΡΠΈΡΡ, ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ²ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΎΠ½ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ.
ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΊΠ°ΠΆΡΡΡΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ, Π²ΡΡΡΠΈΡΡ ΡΠ΅ΠΎΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. ΠΠ°ΡΠ΅ΠΌ? ΠΠ°ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠ΅ΠΎΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΡΡΠ²ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Π°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΎΡΠ²Π΅ΡΡ Π½Π° Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ, Π½Π΅ ΠΈΠΌΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ ΠΈΡΠΊΠ°ΡΡ ΡΡΠΆΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ. Π ΠΊΡΠ°ΡΠΊΠΎΡΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π΅ ΡΠ²ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΌΠΎΠ³ΡΡ ΠΊΠ°Π·Π°ΡΡΡΡ ΠΏΡΠΎΡΡΡΠΌ ΠΈ Π±ΡΡΡΡΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, Π½ΠΎ ΡΠ°ΡΡΠΎ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ Π½Π΅ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌ β Π΅ΡΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ.
Π ΡΠΎΠΌΡ ΠΆΠ΅, ΠΏΠΎΠ»Π°Π³Π°ΡΡΡ Π½Π° ΡΠ²ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΡΠ΅ΡΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΠΎ-Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°ΡΡΠΎ Π²Π°ΠΌ ΡΠ΄Π°ΡΡΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Π²Ρ Π·Π°ΠΉΠ΄Π΅ΡΠ΅ Π² ΡΡΠΏΠΈΠΊ, Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅. ΠΠ° ΡΠ²ΡΠΈΡΡΠΈΠΊΡ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ C&P-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ.
ΠΡΠΈΡΠ΅ΡΠΈΠΉ ΡΡΠΎΠ²Π½Ρ Π½Π°Π²ΡΠΊΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
ΠΡΠΎΠ²ΠΎΠ΄Ρ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ frontend-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ, ΠΌΡ ΡΡΠ°Π²ΠΈΠΌ ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΈΠΌΠΈ Π·Π°Π΄Π°ΡΡ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ Π²ΠΎΠ»ΡΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ, Π±ΡΠ΄Ρ ΡΠΎ Google ΠΈΠ»ΠΈ Stack Overflow. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π°Π΄Π΅ΠΏΡΠΎΠΌ ΡΠ²ΡΠΈΡΡΠΈΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΠΎΡΠΈΠΈ.
ΠΠ΅ΡΠ²ΡΠ΅ Π±Π΅Π· Π²ΡΡΠΊΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΡΡΡΡ ΠΊΠΎΠ΄ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΡΠΎ Stack Overflow. ΠΠΈΡΡ ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ, ΠΎΠ½ΠΈ Π½Π°ΡΠ½ΡΡ ΠΏΠΎΠ΄ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ΄ ΡΠ΅Π±Ρ. Π§Π°ΡΡΠΎ ΠΈΠΌ ΡΡΠΎ Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ.
ΠΡΠΎΡΡΠ΅ ΠΆΠ΅ ΡΠΊΠ»ΠΎΠ½Π½Ρ ΠΈΡΠΊΠ°ΡΡ ΠΎΡΠ²Π΅ΡΡ Π² API-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. Π’Π°ΠΌ ΠΎΠ½ΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΠΊΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠΎΠΉ ΡΠΎΡΠΌΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ CSS-ΡΠ²ΠΎΠΉΡΡΠ²Π°.
Π£ΠΆΠ΅ Π² ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΡΡΡ ΠΌΠΈΠ½ΡΡ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ ΡΠΈΠΏΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ.
ΠΡΠΈΠΌΠ΅Ρ
ΠΠΎΠ·ΡΠΌΠ΅ΠΌ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΠΈΠ»Π»Π°. ΠΠ½ ΠΏΡΠΎΡΠ΅Π» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΡΠ°ΡΡΠΈΡ ΠΊΡΡΡΠΎΠ², ΡΠ΅ΡΠΈΠ» Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°Π΄Π°Ρ Π½Π° JavaScript ΠΈ Π² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΈΡΠ°Π» ΡΠ°ΠΉΡΡ, Π½ΠΎ Β«ΠΏΠΎ-Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡΒ» JavaScript Π½Π΅ ΠΈΠ·ΡΡΠ°Π».
ΠΠ΄Π½Π°ΠΆΠ΄Ρ ΠΠΈΠ»Π»Ρ ΠΏΠΎΠΏΠ°Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ:
const usersById = {
"5": { "id": "5", "name": "Adam", "registered": true },
"27": { "id": "27", "name": "Bobby", "registered": true },
"32": { "id": "32", "name": "Clarence", "registered": false },
"39": { "id": "39", "name": "Danielle", "registered": true },
"42": { "id": "42", "name": "Ekaterina", "registered": false }
}
Π’Π°ΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΡΠΎ, Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ Π»ΠΈ ΠΎΠ½ΠΈ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΌΠ΅ΡΠΎΠΏΡΠΈΡΡΠΈΠ΅.
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΠΈΠ»Π»Ρ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΈΡ
. ΠΠΌΡ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΡΡ ΠΊΠΎΠ΄, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄ .filter()
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΠΏΠΈΡΠΊΠ°. ΠΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΏΡΠΎΠ±ΡΠ΅Ρ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
const attendees = usersById.filter(user => user.registered);
Π Π²ΠΎΡ ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ:
TypeError: usersById.filter is not a function
Β«ΠΠ°ΠΊΠ°Ρ-ΡΠΎ Π±Π΅ΡΡΠΌΡΡΠ»ΠΈΡΠ°Β», β Π΄ΡΠΌΠ°Π΅Ρ ΠΠΈΠ»Π», Π²Π΅Π΄Ρ ΠΎΠ½ Π²ΠΈΠ΄Π΅Π» ΠΊΠΎΠ΄, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ .filter()
ΡΡΠ°Π±Π°ΡΡΠ²Π°Π» Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΠ»ΡΡΡΠ°.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΠΈΠ»Π» ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΡΡ Π½Π° ΡΠ²ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄. ΠΠ½ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΡΡΠΎ filter
β ΠΌΠ΅ΡΠΎΠ΄, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΉ Π½Π° ΠΌΠ°ΡΡΠΈΠ²Π°Ρ
, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ usersById
β ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄Π° filter
.
Π‘Π±ΠΈΡΡΠΉ Ρ ΡΠΎΠ»ΠΊΡ ΠΠΈΠ»Π» Π³ΡΠ³Π»ΠΈΡ Β«javascript ΡΠΈΠ»ΡΡΡΒ». ΠΠ½ Π½Π°Ρ
ΠΎΠ΄ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΡΡΠΎ Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ usersById
Π² ΠΌΠ°ΡΡΠΈΠ². ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ Β«javascript ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΠΌΠ°ΡΡΠΈΠ²Β» ΠΎΠ½ Π½Π°Ρ
ΠΎΠ΄ΠΈΡ Π½Π° Stack Overflow ΠΏΡΠΈΠΌΠ΅ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Object.keys()
. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ ΠΏΡΠΎΠ±ΡΠ΅Ρ:
const attendees = Object.keys(usersById).filter(user => user.registered);
ΠΠ° ΡΡΠΎΡ ΡΠ°Π· ΠΎΡΠΈΠ±ΠΊΠ° Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ, Π½ΠΎ, ΠΊ ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΡ ΠΠΈΠ»Π»Π°, ΠΏΠΎΠ»Π΅ attendees
ΠΎΡΡΠ°Π΅ΡΡΡ ΠΏΡΡΡΡΠΌ.
ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Object.keys()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠ»ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½ΠΎ Π½Π΅ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎ ΡΡΡΠΈ, Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ user
Π»Π΅Π³ΠΊΠΎ Π²Π²ΠΎΠ΄ΠΈΡ Π² Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ΅ΠΊΡ user
, Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΡΠΎ Π΅ΡΡΡ ΡΡΡΠΎΠΊΠ°. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π°ΡΡΠΈΠ±ΡΡ registered
Π΄Π»Ρ ΡΡΡΠΎΠΊ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½, filter
ΡΠ°ΡΡΠ΅Π½ΠΈΠ²Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΡ Π·Π°ΠΏΠΈΡΡ ΠΊΠ°ΠΊ Π»ΠΎΠΆΠ½ΡΡ, ΠΈ ΠΌΠ°ΡΡΠΈΠ² Π²ΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΡΡΡΡΠΌ.
ΠΠΈΠ»Π» ΠΏΡΠΈΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊ ΠΎΡΠ²Π΅ΡΠ°ΠΌ Π½Π° Stack Overflow ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅ ΠΈ Π²Π½ΠΎΡΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅:
const attendees = Object.keys(usersById).filter(id => usersById[id].registered);
ΠΠ° ΡΡΠΎΡ ΡΠ°Π· ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π»ΡΡΡΠ΅: ["5", "27", "39"]
. ΠΠΎ ΠΠΈΠ»Π» Ρ
ΠΎΡΠ΅Π» ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Π΅ΠΉ, Π° Π½Π΅ ΠΈΡ
ID.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Π΅ΠΉ, ΡΠ°Π·Π΄ΡΠ°ΠΆΠ΅Π½Π½ΡΠΉ ΠΠΈΠ»Π» ΠΈΡΠ΅Ρ Β«javascript ΡΠΈΠ»ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²Β», ΠΈΠ·ΡΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ Stack Overflow ΠΈ Π½Π°Ρ
ΠΎΠ΄ΠΈΡ
Object.filter = (obj, predicate) =>
Object.keys(obj)
.filter( key => predicate(obj[key]) )
.reduce( (res, key) => (res[key] = obj[key], res), {} );
ΠΠΈΠ»Π» ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΡΡΠΈ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΏΡΠΎΠ±ΡΠ΅Ρ:
const attendees = Object.filter(usersById, user => user.registered);
ΠΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ β Ρ
ΠΎΡΡ ΠΈ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ. ΠΠΈΠ»Π» Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ΅Π½ reduce
ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΠΈΠ»Π» Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ» Π΄Π»Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Object
Π½ΠΎΠ²ΡΠΉ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄.
ΠΠΎ ΠΠΈΠ»Π»Ρ Π²ΡΡ ΡΠ°Π²Π½ΠΎ β ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²Π΅Π΄Ρ! ΠΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ Π΅Π³ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡ.
Π§ΡΠΎ ΠΠΈΠ»Π» ΡΠ΄Π΅Π»Π°Π» Π½Π΅ ΡΠ°ΠΊ?
ΠΠΈΠ»Π» ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΠ²ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ:
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²
.filter()
Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΠΈΠ»Π» ΠΏΠΎΠ»ΡΡΠΈΠ»TypeError
. ΠΠ½ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π», ΡΡΠΎfilter
Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π½Π° ΠΎΠ±ΡΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ . - ΠΠ½ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ»
Object.keys()
, ΡΡΠΎΠ±Ρ Β«ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΠΌΠ°ΡΡΠΈΠ²Β», Π½ΠΎ ΡΠ°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π½Π΅ ΠΏΡΠΈΠ½Π΅ΡΠ»ΠΎ. ΠΠΌΡ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. - ΠΠ°ΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π² ΠΈΡ ΠΊΠ°ΠΊ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ, ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠΈΠ» Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π°ΡΡΠΎΡΠΈΠΈΡΡΡΡΠΈΡ ΡΡ Ρ ΡΡΠΈΠΌΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ. ΠΡΡ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΡΠΈΠ»ΡΡΡΡΠ΅ΠΌΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΠ΄Π΅ΡΠΆΠ°Π» ID, Π° Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
- Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΠΈΠ»Π» ΠΎΡΠΊΠ°Π·Π°Π»ΡΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΈ Π½Π°ΡΡΠ» ΡΠ°Π±ΠΎΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠ½ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π΅ ΠΏΠΎΠ½ΡΠ», ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ β ΠΈ Π½Π΅ ΡΡΠ°Π½Π΅Ρ ΡΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, Π²Π΅Π΄Ρ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π΄Π΅Π»Π°.
ΠΡΠΎ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΎ ΠΌΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π· ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ, ΡΠ΅ΡΠ°ΡΡΠΈΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΡΠΎΠΉ ΠΆΠ΅ ΠΌΠ°Π½Π΅ΡΠ΅. Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠ°ΡΡ ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΎΠΉΡΠΈ ΠΎΡ ΡΠ²ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΠΈΠ·ΡΡΠΈΡΡ ΡΠ΅ΠΎΡΠΈΡ.
ΠΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΎΡΠ½ΠΎΠ²Π°ΠΌ
ΠΡΠ»ΠΈ Π±Ρ ΠΠΈΠ»Π» Π±ΡΠ» ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΊΠΎΠΌ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°, ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅Π» Π±Ρ ΡΠ°ΠΊ:
- ΠΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π΄Π°Π½Π½ΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠ΅ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ β Π² ΡΠΌΡΡΠ»Π΅ ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²: Β«Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΡΡΡΡ ΡΡΡΠΎΠΊΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ID, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ β ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. Π― Ρ ΠΎΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ², Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ β Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉΒ»
- ΠΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΏΠ΅ΡΠ΅Π±ΠΎΡ Π²Π½ΡΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°: Β«Π― Π·Π½Π°Ρ, ΡΡΠΎ ΠΌΠΎΠ³Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΊΠ»ΡΡΠ΅ΠΉ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅, Π²ΡΠ·Π²Π°Π²
Object.keys()
. Π― Ρ ΠΎΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΒ». - ΠΡΠΎΠ·Π½Π°ΡΡ, ΡΡΠΎ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠ»ΡΡΠΈ, Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠΈ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΈ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΏΡΠΎ
map
β ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΡΡΡΠΌ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°:Object.keys(usersById).map(id => usersById[id])
- Π£Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΈ ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ:
Object.keys(usersById).map(id => usersById[id]).filter(user => user.registered)
ΠΠΎΠΉΠ΄ΠΈ ΠΠΈΠ»Π» ΡΡΠΈΠΌ ΠΏΡΡΠ΅ΠΌ, ΠΎΠ½ ΠΌΠΎΠ³ Π±Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π°Ρ.
ΠΠΎΡΠ΅ΠΌΡ Π»ΡΠ΄ΠΈ Π½Π΅ ΠΏΡΠΈΠ±Π΅Π³Π°ΡΡ ΠΊ ΡΠ΅ΠΎΡΠΈΠΈ ΡΠ°ΡΠ΅?
ΠΠ½ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΏΡΠΎΡΡΠΎ Ρ Π½Π΅ΠΉ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ½ΠΈ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π·Π°Π½ΡΡΡ ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΡΡΠΈΡΡ ΡΡΠΎΡ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ β ΠΈΠΌ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. ΠΠ½ΠΈ ΡΠΈΡΠΊΡΡΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π² ΠΏΡΠΈΠ²ΡΡΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ°Π½Π΅Ρ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΠΈΠ΅ΠΌ Π΄Π»Ρ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΈΡ Π½Π°Π²ΡΠΊΠΎΠ².
Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Π²ΡΠ΅Π³Π΄Π° Π½Π°ΡΠΈΠ½Π°ΠΉΡΠ΅ Ρ ΡΠ΅ΠΎΡΠΈΠΈ. ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ°Π΄ΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π·Π°Π΄ΡΠΌΡΠ²Π°ΠΉΡΠ΅ΡΡ, Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π°Π½Π½ΡΠΌΠΈ Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π΄Π΅Π»ΠΎ. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΡ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° Π·Π½Π°ΠΊΠΎΠΌΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΡΡΠΈΡΡΠ²Π°ΠΉΡΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ : ΠΌΠ°ΡΡΠΈΠ², ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΡΡΠΎΠΊΠ° ΠΈ Ρ.Π΄. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΡΠΎΡΠ½ΠΎ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
Π‘ ΡΠ°ΠΊΠΈΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠΌ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΠΎΠΏΡΡΠΊΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² Π΅Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ, Π²Π΅Π΄Ρ Π²Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π±ΠΈΡΠ°Π»ΠΈ ΡΠ²ΠΎΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° Π·Π°Π΄Π°Π½Π½ΡΡ
Π²Ρ
ΠΎΠ΄Π½ΡΡ
ΠΈ ΠΆΠ΅Π»Π°Π΅ΠΌΡΡ
Π²ΡΡ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
. ΠΠ½ΠΈΠΊΠ°ΠΉΡΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ), Π° Π½Π΅ ΡΠ°Π·ΠΌΡΡΡΠ΅ Π±ΠΈΠ·Π½Π΅Ρ-ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΊΠΈ (Π²ΡΠΎΠ΄Π΅ Β«Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉΒ»).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com