ΠΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠΈΠΏΡ | ΠΠ°ΡΠΌΠ°Π½Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎ TypeScript
- ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΡΠ²ΠΎΠΉΡΡΠ² (property modifiers)
- ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°
- Π‘Π²ΠΎΠΉΡΡΠ²Π°, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ (readonly properties)
- Π‘ΠΈΠ³Π½Π°ΡΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° (index signatures)
- Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² (extending types)
- ΠΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² (intersection types)
- ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²?
- ΠΠ±ΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠΈΠΏΡ
- Π’ΠΈΠΏ
Array
- Π’ΠΈΠΏ
ReadonlyArray
- ΠΠΎΡΡΠ΅ΠΆ (tuple)
- Π’ΠΈΠΏ
Π JS
ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ
ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ. Π TS
ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ (object types).
ΠΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ ΡΠ°Π½Π΅Π΅, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠΌΠΈ:
ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² (interfaces):
ΠΈΠ»ΠΈ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠΎΠ² ΡΠΈΠΏΠ° (type aliases):
ΠΠΎ Π²ΡΠ΅Ρ
ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ
ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ name
(Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΈΠΏΠ° string
) ΠΈ age
(Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΈΠΏΠ° number
).
ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΡΠ²ΠΎΠΉΡΡΠ² (property modifiers)#
ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΌ ΡΠΈΠΏΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΠ΅ΠΉ: ΡΠ°ΠΌ ΡΠΈΠΏ, ΡΠΎ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ, ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΎΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ.
ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°#
Π‘Π²ΠΎΠΉΡΡΠ²Π° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ ΠΊΠ°ΠΊ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ (Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅) ΠΏΡΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π²ΠΎΠΏΡΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠ° (?
) ΠΏΠΎΡΠ»Π΅ ΠΈΡ
Π½Π°Π·Π²Π°Π½ΠΈΠΉ:
ΠΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π²Π°Π»ΠΈΠ΄Π½ΡΠΌΠΈ. ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΡΠΈΠΏ.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ
ΡΠ²ΠΎΠΉΡΡΠ². ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ strictNullChecks
, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ
ΡΠ²ΠΎΠΉΡΡΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ undefined
:
Π JS
ΠΏΡΠΈ Π΄ΠΎΡΡΡΠΏΠ΅ ΠΊ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ undefined
. ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΠΎ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ «Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΡ
» Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ (Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² JS
ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ Π΄Π΅ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ painShape
ΠΈ ΡΠΊΠ°Π·Π°Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ xPos
ΠΈ yPos
. Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠ½ΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π² ΡΠ΅Π»Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ painShape
, Π½ΠΎ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΈ Π΅Π΅ Π²ΡΠ·ΠΎΠ²Π΅.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΡΠΈΠΏΠ° Π² Π΄Π΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½ JS
ΠΈΠ½Π°ΡΠ΅.
shape: Shape
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ «Π²ΠΎΠ·ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° shape
ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠΉ Π΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Shape
«. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ xPos: number
ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ number
, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ xPos
.
Π‘Π²ΠΎΠΉΡΡΠ²Π°, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ (readonly properties)#
Π‘Π²ΠΎΠΉΡΡΠ²Π° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ ΠΊΠ°ΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° readonly
. Π’Π°ΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ²:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° readonly
Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ ΡΠ°ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΠΎΠΉ (Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ), ΡΡΠΎ Π»ΠΈΡΡ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ Π΅ΠΉ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
readonly
ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ TS
, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Π΄Π²ΡΡ
ΡΠΈΠΏΠΎΠ² TS
Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠ²Π»ΡΡΡΡΡ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠΎΠ²:
Π‘ΠΈΠ³Π½Π°ΡΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° (index signatures)#
ΠΠ½ΠΎΠ³Π΄Π° ΠΌΡ Π½Π΅ Π·Π½Π°Π΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠΉ Π²ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ² ΡΠΈΠΏΠ°, Π½ΠΎ Π·Π½Π°Π΅ΠΌ ΡΠΎΡΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ Π½Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ StringArray
, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΈΠ³Π½Π°ΡΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°. ΠΠ°Π½Π½Π°Ρ ΡΠΈΠ³Π½Π°ΡΡΡΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΡΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ StringArray
Ρ ΠΏΠΎΠΌΠΎΡΡΡ number
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ string
.
Π‘ΠΈΠ³Π½Π°ΡΡΡΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΠΈΠΏΠ° ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ ΠΈΠ»ΠΈ ΡΠΈΡΠ»ΠΎΠΌ.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΎΠ±ΠΎΠΈΡ
ΡΠΈΠΏΠΎΠ² ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡΠΎΠ² (indexers), ΡΠΈΠΏ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΠΈΠ· ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡΠ°, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΠ΄ΡΠΈΠΏΠΎΠΌ ΡΠΈΠΏΠ°, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡΠΎΠΌ. ΠΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ number
, JS
ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π΅Π³ΠΎ Π² string
ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠ΅ΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ 100
(number
) ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ "100"
(string
), ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ.
Π ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΠΊΠ°ΠΊ ΡΠΈΠ³Π½Π°ΡΡΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΠ²Π»ΡΡΡΡΡ Ρ
ΠΎΡΠΎΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ°ΡΡΠ΅ΡΠ½Π° «ΡΠ»ΠΎΠ²Π°ΡΡ», ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ
ΡΠ²ΠΎΠΉΡΡΠ² ΠΈΡ
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΌ ΡΠΈΠΏΠ°ΠΌ. ΠΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ obj.property
Ρ ΠΏΠΎΠΌΠΎΡΡΡ obj['property']
. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΈΠΏ name
Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΡΠΈΠΏΠΎΠΌ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°:
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΠ²ΠΎΠΉΡΡΠ²Π° Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ Π²Π°Π»ΠΈΠ΄Π½ΡΠΌΠΈ Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΡΠΈΠ³Π½Π°ΡΡΡΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ° — ΡΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² (union):
Π‘ΠΈΠ³Π½Π°ΡΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΈΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ:
Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² (extending types)#
Π§ΡΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π½Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΈΠΏ BasicAddress
, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ ΠΏΠΎΠ»Ρ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΈΡΠ΅ΠΌ ΠΈ ΠΏΠΎΡΡΠ»ΠΎΠΊ Π² Π‘Π¨Π:
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
ΡΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π°Π΄ΡΠ΅ΡΠ° ΡΠ°ΡΡΠΎ ΠΈΠΌΠ΅ΡΡ Π»ΠΈΡΠ΅ΡΠ°Π»Ρ. ΠΠ»Ρ ΡΠ°ΠΊΠΈΡ
ΡΠ»ΡΡΠ°Π΅Π² ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ AddressWithUnit
:
ΠΠ΅ΡΠΆΠ΅Π»ΠΈ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΏΠΎΠ»Π΅ΠΉ? ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΡΡΠΈΡΠΈΡΡ BasicAddress
, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΊ Π½Π΅ΠΌΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ Π΄Π»Ρ AddressWithUnit
:
ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ extends
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π½ΠΎΠ² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ
ΡΠΈΠΏΠΎΠ² Π² Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΠΏΡ. ΠΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠΏΠ°ΠΌΠΈ.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ°ΡΡΠΈΡΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ:
ΠΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² (intersection types)#
interface
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄ΡΡΠ³ΠΈΡ
ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΈΡ
ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ. TS
ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΡΡΠ³ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΠΈΠΌΠΈΡΡ ΡΠΈΠΏΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠΈΠΏΡ. ΠΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° &
:
ΠΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² Colorful
ΠΈ Circle
ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΠΈΠΏΠ°, Π²ΠΊΠ»ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ Colorful
ΠΈ Circle
:
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²?#
Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠΈΠΏΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π·Π° ΡΡΠ΅Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ . ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ.
ΠΠ±ΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠΈΠΏΡ#
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠΈΠΏ Box
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΡΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅:
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ ΡΠΈΠΏ any
ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠΏΠΎΠ². ΠΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ unknown
, Π½ΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ ΠΈ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Π½ΡΡ
ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΉ ΡΠΈΠΏΠΎΠ² (type assertions).
ΠΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠΈΠΏΠΎΠ² Box
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° contents
:
ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ ΠΎΠ±ΡΡΠ»Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΎΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ (function overloads) Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ:
Π‘Π»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΏ ΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΡ. Π’Π°ΠΊ Π½Π΅ ΠΏΠΎΠΉΠ΄Π΅Ρ.
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠΈΠΉ (generic) ΡΠΈΠΏ Box
, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΠ° (type parameter):
ΠΠ°ΡΠ΅ΠΌ, ΠΏΡΠΈ ΡΡΡΠ»ΠΊΠ΅ Π½Π° Box
, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° (type argument) Π²ΠΌΠ΅ΡΡΠΎ Type
:
ΠΠΎ ΡΡΡΠΈ, Box
— ΡΡΠΎ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ Π½Π°ΡΡΠΎΡΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Type
Π±ΡΠ΄Π΅Ρ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΠΏ. ΠΠΎΠ³Π΄Π° TS
Π²ΠΈΠ΄ΠΈΡ Box<string>
, ΠΎΠ½ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ Π²ΡΠ΅ Π²Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Type
Π² Box<Type>
Π½Π° string
ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΠΌ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ { contents: string }
. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Box<string>
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠΉ ΡΠ°Π½Π΅Π΅ StringBox
.
Π’ΠΈΠΏ Box
ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ (Ρ.Π΅. ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠΈΠΏ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΅Π³ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ). ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΊΠΎΡΠΎΠ±ΠΊΠ° (Box
— ΠΊΠΎΡΠΎΠ±ΠΊΠ°, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ) Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π½Π°ΠΌ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΏ Box
:
ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΌΠ΅ΡΡΠΎ Π½ΠΈΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ (generic function):
Π‘ΠΈΠ½ΠΎΠ½ΠΈΠΌΡ ΡΠΈΠΏΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ±ΡΠΈΠΌΠΈ. ΠΠΎΡ ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ±ΡΠΈΠΉ ΡΠΈΠΏ (generic type) Box
:
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΡ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π»ΡΠ±ΡΡ ΡΠΈΠΏΠΎΠ², Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΏΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π’ΠΈΠΏ
Array
#Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ number[]
ΠΈΠ»ΠΈ string[]
— ΡΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Array<number>
ΠΈ Array<string>
, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ:
Array
ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠΈΠΌ ΡΠΈΠΏΠΎΠΌ:
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ JS
ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Map<K, V>
, Set<T>
ΠΈ Promise<T>
. Π£ΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π»ΡΠ±ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠΈΠΏΠΎΠ².
Π’ΠΈΠΏ
ReadonlyArray
#ReadonlyArray
— ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠΏ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ.
ΠΠΎΠ³Π΄Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ReadonlyArray
, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ², Π° ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ReadonlyArray
, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π»ΡΠ±ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΈ Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Array
, ReadonlyArray
Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ:
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ²Ρ, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ:
ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ readonly Type[]
:
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΡΠ²ΠΎΠΉΡΡΠ² readonly
, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Array
ΠΈ ReadonlyArray
ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ (Ρ. Π΅. ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Ρ):
ΠΠΎΡΡΠ΅ΠΆ (tuple)#
ΠΠΎΡΡΠ΅ΠΆ — ΡΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡ ΡΠΈΠΏΠ° Array
Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΡΠΈΠΏΠΎΠ².
StrNumPair
— ΡΡΠΎ ΠΊΠΎΡΡΠ΅ΠΆ string
ΠΈ number
. StrNumPair
ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ², ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ (ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 0
) ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ string
, Π° Π²ΡΠΎΡΠΎΠΉ (ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 1
) — number
.
ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ, ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ΅ΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΎΡΠΈΠ±ΠΊΡ:
ΠΠΎΡΡΠ΅ΠΆΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°ΡΡ:
Π Π°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠΎΡΡΠ΅ΠΆ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠΎΠΌ ΡΠ°ΠΊΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠΈΠΏΠ° Array
:
ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ (?
). Π’Π°ΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π² ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ ΠΈ Π²Π»ΠΈΡΡΡ Π½Π° ΡΠΈΠΏ ΡΠ²ΠΎΠΉΡΡΠ²Π° length
:
ΠΠΎΡΡΠ΅ΠΆΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ (Ρ.Π΅. ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ, rest elements), ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΌ:
. ..boolean[]
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΈΠΏΠ° boolean
.
Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ (length
) — ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ Π»ΠΈΡΡ Π½Π°Π±ΠΎΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ
ΠΏΠΎΠ·ΠΈΡΠΈΡΡ
:
ΠΠΎΡΡΠ΅ΠΆΠΈ ΡΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΡΠ°Π²ΡΠΈΡ ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:
ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠΎΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ:
ΠΠΎΡΡΠ΅ΠΆΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ (readonly tuple types)#
ΠΠΎΡΡΠ΅ΠΆΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° readonly
:
ΠΠΎΠΏΡΡΠΊΠ° ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅:
ΠΠΎΡΡΠ΅ΠΆΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΈΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΡΡ
ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΡΠ°ΠΊ ΡΡΠΎ Ρ
ΠΎΡΠΎΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π΄Π΅Π»Π°ΡΡ ΠΈΡ
Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΠΌ ΡΠΈΠΏΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ const
ΡΠ²Π»ΡΠ΅ΡΡΡ readonly
ΠΊΠΎΡΡΠ΅ΠΆ:
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ distanceFromOrigin
Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°, Π½ΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠ°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΠΌ ΡΠΈΠΏΠΎΠΌ point
ΡΠ²Π»ΡΠ΅ΡΡΡ readonly [3, 4]
, ΠΎΠ½ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ [number, number]
, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² point
.
ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠΏΠΈΡΠΊΠ΅Β
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠΏΠΈΡΠΊΠ΅ Π² Python — ΠΎΠ±ΡΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠΏΠΈΡΠΊΠ΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π΅Π³ΠΎ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΠ΅.Β ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΠΏΠΈΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΒ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π», ΡΠΈΡΠ΅Π» Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ, ΡΡΡΠΎΠΊ, Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π΄ΡΡΠ³ΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈ Ρ. Π΄:
# List of just integers list_a = [12, 5, 91, 18] # List of integers, floats, strings, booleans list_b = [4, 1.2, "hello world", True]
ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΡΡΠΈΡΠ°Π΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ list_a
, ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π²ΡΠ΅Π³ΠΎ 5 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².Β ΠΡΠ»ΠΈ ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄Π»Ρ list_b
, ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ 4 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
ΠΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠΏΠΈΡΠΊΠ΅.Β ΠΠΎΠ΄Ρ ΠΎΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ, Ρ ΠΎΡΠΈΡΠ΅ Π»ΠΈ Π²Ρ ΡΡΠΈΡΠ°ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ»ΠΈ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°Ρ , ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈ Ρ.
ΠΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ len()
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ·Π½Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠΏΠΈΡΠΊΠ΅ — ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Python ΡΡΠ½ΠΊΡΠΈΡΒ len()
.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
list_a = ["Hello", 2, 15, "World", 34] number_of_elements = len(list_a) print("Number of elements in the list: ", number_of_elements)
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
Number of elements in the list: 5
ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, ΡΡΠ½ΠΊΡΠΈΡ len()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π»ΠΈΠ½Ρ ΡΠΏΠΈΡΠΊΠ° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΈΠΏΠΎΠ² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² Π½Π΅ΠΌ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΊΠ»Π° for
ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ — ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° for
.Β Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΡΠ΅ΡΡΠΈΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π²Π½ΡΠΌ 0, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΠΊΠ»Π°, ΡΡΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° 1.
Π¦ΠΈΠΊΠ» Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅Ρ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠ΅ΡΡΠΈΠΊ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠΏΠΈΡΠΊΠ΅:
list_c = [20, 8.9, "Hi", 0, "word", "name"] def get_number_of_elements(list): count = 0 for element in list: count += 1 return count print("Number of elements in the list: ", get_number_of_elements(list_c))
ΠΠ°ΠΏΡΡΠΊ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ:
Number of elements in the list: 6
ΠΡΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ len()
, Π½ΠΎ Π΅Π³ΠΎ ΡΡΠΎΠΈΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎΠ·ΠΆΠ΅ Π² ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΡ ΠΆΠ΅ ΠΈΠ΄Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΠΏΠΈΡΠΊΠΎΠ².
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠΏΠΈΡΠΊΠ΅
Π‘ΠΏΠΈΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ.Β ΠΡΠ»ΠΈ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π±Π΅Π· Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠΎΠ² (ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²), ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡΒ set()
.Β ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ set
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΊΠ»ΠΎΠ½ΡΠ΅Ρ Π²ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΡΠΎ Π² ΡΡΠ½ΠΊΡΠΈΡ len()
, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²Β set
:
list_d = [100, 3, 100, "c", 100, 7.9, "c", 15] number_of_elements = len(list_d) number_of_unique_elements = len(set(list_d)) print("Number of elements in the list: ", number_of_elements) print("Number of unique elements in the list: ", number_of_unique_elements)
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
Number of elements in the list: 8 Number of unique elements in the list: 5
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π² list_d
Β 8 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², 5 ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ
ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Ρ.
Π‘ΠΏΠΈΡΠΎΠΊ ΡΠΏΠΈΡΠΊΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ len()
ΠΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΌΡ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ .Β ΠΠ΄Π½Π°ΠΊΠΎ ΡΠΏΠΈΡΠΊΠΈ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΏΠΈΡΠΊΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².Β ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
list_e = [[90, 4, 12, 2], [], [34, 45, 2], [9,4], "char", [7, 3, 19]]
ΠΡΠ»ΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡΒ len()
, ΡΠΏΠΈΡΠΊΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ:
number_of_elements = len(list_e) print("Number of elements in the list of lists: ", number_of_elements)
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
Number of elements in the list of lists: 6
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΡΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ.Β ΠΡΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΎΠ½ΠΈ Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.Β ΠΠΎΡΒ Π·Π΄Π΅ΡΡ for
ΠΈ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ.
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠΏΠΈΡΠΊΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΈ
ΠΡΠ»ΠΈ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΏΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²Π½ΡΡΡΠΈ ΡΠΏΠΈΡΠΊΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΈ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΒ ΡΠΈΠΊΠ»Β
. Β ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ count= 0
ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ.Β ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π° count
ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° Π΄Π»ΠΈΠ½Ρ ΡΡΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π»ΠΈΠ½ΡΒ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉΒ len()
:
list_e = [[90, 4, 12, 2], [], [34, 45, 2], [9,4], "char", [7, 3, 19]] def get_all_elements_in_list_of_lists(list): count = 0 for element in list_e: count += len(element) return count print("Total number of elements in the list of lists: ", get_all_elements_in_list_of_lists(list_e))
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
Total number of elements in the list of lists: 16
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΆΠ½ΡΡ
ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ².Β ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, Π½Π° ΡΡΠΎΡ ΡΠ°Π· ΠΏΡΡΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΠ» Π½Π° ΠΎΠ±ΡΠΈΠΉ ΡΡΠ΅Ρ.Β ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠΈΠΊΠ»Π΅ ΠΌΡ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ Π΄Π»ΠΈΠ½Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»ΠΈΠ½Π° ΠΏΡΡΡΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΡΠ°Π²Π½Π° 0, count
ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° 0.
ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΡΡΡΠΎΠΊΠΈ "char"
ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Β ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡΒ len()
Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π½Π° ΡΡΡΠΎΠΊΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Ρ Π²ΡΠ΅ Π΅Π΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ.Β ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΡ ΠΆΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄, ΡΡΠΎ ΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π½ΠΈΠΆΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΠΎΡ ΡΠΏΠΈΡΠΊΠΎΠ².
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, — ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ°:
number_of_elements = sum([len(element) for element in list_e])
ΠΡΠ° ΡΡΡΠΎΠΊΠ°, ΠΏΠΎ ΡΡΡΠΈ, Π΄Π΅Π»Π°Π΅Ρ Π΄Π²Π΅ Π²Π΅ΡΠΈ.Β ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π΄Π»ΠΈΠ½Ρ Π²ΡΠ΅Ρ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°.Β Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ°ΠΊΒ [4, 0, 3, 2, 4, 3]
.Β ΠΠΎ-Π²ΡΠΎΡΡΡ
, ΠΎΠ½ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ sum()
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²Π½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΡΡ ΡΡΠΌΠΌΡ Π²ΡΠ΅Ρ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π΄Π°Π²Π°Ρ Π½Π°ΠΌ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ — ΡΡΠΎ ΡΠΏΠΈΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ². ΠΠ½ΡΡΡΠΈ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ²Π½Π΅ΠΉ:
list_f = [30, 0.9, [8, 56, 22, ["a", "b"]], [200, 3, [5, [89], 10]]]
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ["a", "b"]
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅Β [8, 56, 22, ["a", "b"]]
, ΠΊΠΎΡΠΎΡΡΠΉ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅Β [30, 0. 9,[200, 3, [5, [89], 10]]]
.
ΠΠΏΡΡΡ ΠΆΠ΅, ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡΒ count
ΡΠ°Π²Π½ΠΎΠΉ 0. ΠΡΠ»ΠΈ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅, Π½Π°ΠΌ ΡΠ½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅Ρ.Β ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ, ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠΈΠΊΠ» Π²Π½ΡΡΡΠΈ ΡΠΏΠΈΡΠΊΠ° ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡΡΠ°Π½ΡΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ.Β ΠΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΡΠΎΠΌΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ² (ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π°, ΡΡΡΠΎΠΊΠΈ ΠΈ Ρ.Π΄.), ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΡΡΠ΅ΡΡΠΈΠΊ Π½Π° 1.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π²ΡΠ·Π²Π°Π½Π½ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠΌ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°Ρ :
list_f = [30, 0.9, [8, 56, 22, ["a", "hello"]], [200, 3, [5, [89], 10]]] def get_elements_of_nested_list(element): count = 0 if isinstance(element, list): for each_element in element: count += get_elements_nested_list(each_element) else: count += 1 return count print("Total number of elements in the nested list: ", get_elements_of_nested_list(list_f))
ΠΠ°ΠΏΡΡΠΊ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π°ΡΡ Π½Π°ΠΌ:
Total number of elements in the nested list: 12
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ isinstance()
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ°, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΠΎΡΡΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ. Β Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ½ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠΎΠΌ.
ΠΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π»ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ 30
, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡ ΠΊ Π±Π»ΠΎΠΊΡ else
ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΡΠ΅ΡΡΠΈΠΊ Π½Π° 1. ΠΠΎΠ³Π΄Π° ΠΌΡ Π΄ΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ Π΄ΠΎΒ [8, 56, 22, ["a", "hello"]]
, ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π΄ΡΡΠ³ΠΈΡ
ΡΠΏΠΈΡΠΊΠΎΠ².
ΠΡΠ²ΠΎΠ΄
ΠΡ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° ΡΠΏΠΈΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π½Π°Ρ Π΅ΡΡΡ, Π΅ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². len()
ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΡΠ°ΠΌΠ°Ρ Π±ΡΡΡΡΠ°Ρ ΠΈ ΠΏΡΠΎΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΠ»ΠΎΡΠΊΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΈ.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
ΡΠΏΠΈΡΠΊΠΎΠ² ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²Π½ΡΡΡΠΈ ΡΠΏΠΈΡΠΊΠΎΠ² Π½Π΅ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ len()
.Β ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ Π²Π΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ.
ΠΠ°ΠΊ ΠΏΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²ΠΎΠΉΡΡΠ² Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ JavaScript β Techstacker
Π£Π·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²ΠΎΠΉΡΡΠ² Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ JavaScript Π΄Π²ΡΠΌΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²ΠΎΠΉΡΡΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ° JavaScript, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ:
- a
for
loop - ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄
Object. keys()
.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΠΌ ΠΈΡ ΠΎΠ±ΠΎΠΈΡ !
ΠΠΎΠ΄ΡΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° for
ΠΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ JavaScript Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠΎΠ±Π°ΠΊΠ°
:
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° ΡΠΎΠ±Π°ΠΊΠ° = { ΠΈΠΌΡ: "ΠΠ°Ρ", Π²ΠΎΠ·ΡΠ°ΡΡ: 2, ΡΠ΅ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ", ΠΠΎΡΠΎΠ΄Π°: "Π ΠΎΡΠ²Π΅ΠΉΠ»Π΅Ρ ΠΌΠΈΠΊΡ", }
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²ΠΎΠΉΡΡΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²
, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ±ΡΡΠ²ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ count
ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠΈΠΌ Π΅ΠΉ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0
:
let count = 0
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ ΡΠΎΠ±Π°ΠΊΠ°
ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ, ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΎΠ΄ΠΈΠ½ (+ 1) ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ count
:
for (let properties in dog) { ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ = ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ + 1 }
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ console.log()
:
console.log(count) // Π Π΅Π·ΡΠ»ΡΡΠ°Ρ: 4
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΠΊΠΎΠ΄, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ 4
.
ΠΠΎΠ΄ΡΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Object.
keys() ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ JavaScript Object.keys()
Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° Π²ΡΠ΅Ρ
ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΠΌΡΡ
ΡΠ²ΠΎΠΉΡΡΠ² (ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅) ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ dog
ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ, Π½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ dog
object to Object.keys()
ΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΡ Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° length
:
const dog = { ΠΈΠΌΡ: "ΠΠ°Ρ", Π²ΠΎΠ·ΡΠ°ΡΡ: 2, ΡΠ΅ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ", ΠΠΎΡΠΎΠ΄Π°: "Π ΠΎΡΠ²Π΅ΠΉΠ»Π΅Ρ ΠΌΠΈΠΊΡ", } ΠΏΡΡΡΡ count = Object.keys(dog).length console.log(ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ) // Π Π΅Π·ΡΠ»ΡΡΠ°Ρ: 4
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΎΡ ΠΆΠ΅. ΠΠ»ΠΈ ΡΡΠΎ?
ΠΠ° ΠΈ Π½Π΅Ρ. ΠΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.
for ΠΈ Object.keys()
Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΊΠ»Π° for
ΠΈ Object.keys()
is:
- Π¦ΠΈΠΊΠ»
for
ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° (Π·Π΄Π΅ΡΡdog
), ΡΠ°ΠΊ ΠΈ Π»ΡΠ±ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Π²Π½Π΅ Π΅Π³ΠΎ. - ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄
Object. keys()
ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅Ρ (ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅Ρ) ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΠΌΡΠ΅ (ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅) ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°.
ΠΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ β ΡΡΠΎ Π΄ΡΡΠ³ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° .
Π§ΡΠΎ Ρ ΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Ρ ΠΏΠΎΠ΄ Β«ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈΒ»?
ΠΠΎΠ·ΡΠΌΠ΅ΠΌ ΡΠΎΡ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Object.keys()
ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ, Π½ΠΎ Π½Π° ΡΡΠΎΡ ΡΠ°Π· ΠΌΡ ΡΠ²ΡΠΆΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ±Π°ΠΊΠ°
Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ΅
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ _proto_
:
// ΠΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΡΡΡ ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ΅ = { ΡΠ΅ΡΡΡΠ΅ Π½ΠΎΠ³ΠΈ: ΠΏΡΠ°Π²Π΄Π°, } ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½Π°Ρ ΡΠΎΠ±Π°ΠΊΠ° = { ΠΈΠΌΡ: "ΠΠ°Ρ", Π²ΠΎΠ·ΡΠ°ΡΡ: 2, ΡΠ΅ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ", ΠΠΎΡΠΎΠ΄Π°: "Π ΠΎΡΠ²Π΅ΠΉΠ»Π΅Ρ ΠΌΠΈΠΊΡ", } // Π‘Π²ΡΠ·Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ±Π°ΠΊΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ±Π°ΠΊΠ°.__ΠΏΡΠΎΡΠΎ__ = ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ΅ var count = Object.keys(dog).length console.log(ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ) // Π Π΅Π·ΡΠ»ΡΡΠ°Ρ: 4
ΠΠΎΡΠ΅ΠΌΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π²Π΅Π½ 4, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²ΠΎΠΉΡΡΠ² ΡΠΎΠ±Π°ΠΊ
ΠΈ ΠΆΠΈΠ²ΠΎΡΠ½ΡΡ
ΡΠ°Π²Π½ΠΎ 5, Π° ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΈ ΠΈΡ
Π²ΠΌΠ΅ΡΡΠ΅ ΠΈ ΠΏΠΎΡΡΠΈΡΠ°Π»ΠΈ?
ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Object. keys()
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΈΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ (ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΠΌΡΠ΅) ΡΠ²ΠΎΠΉΡΡΠ²Π°, Π° Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°. ΠΠΎΡΡΠΎΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ fourLegs
ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ° animal
Π½Π΅ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΎ Π½Π° ΡΡΠΎΡ ΡΠ°Π· ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π»Ρ ΡΠΈΠΊΠ»Π°
Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΡΠ²ΠΎΠΉΡΡΠ²:
const animal = { ΡΠ΅ΡΡΡΠ΅ Π½ΠΎΠ³ΠΈ: ΠΏΡΠ°Π²Π΄Π°, } ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½Π°Ρ ΡΠΎΠ±Π°ΠΊΠ° = { ΠΈΠΌΡ: "ΠΠ°Ρ", Π²ΠΎΠ·ΡΠ°ΡΡ: 2, ΡΠ΅ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ", ΠΠΎΡΠΎΠ΄Π°: "Π ΠΎΡΠ²Π΅ΠΉΠ»Π΅Ρ ΠΌΠΈΠΊΡ", } // Π‘Π²ΡΠ·Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ±Π°ΠΊΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ±Π°ΠΊΠ°.__ΠΏΡΠΎΡΠΎ__ = ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ΅ ΠΏΡΡΡΡ ΡΡΠ΅Ρ = 0 for (ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² ΡΠΎΠ±Π°ΠΊΠ΅) { ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ = ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ + 1 } console.log(ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ) // Π Π΅Π·ΡΠ»ΡΡΠ°Ρ: 5
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²ΡΠ΅ 5 ΡΠ²ΠΎΠΉΡΡΠ², ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Object.keys()
, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΈΠΊΠ» for
, ΠΌΡ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ΅ΡΠ΅Π· ΠΊΠ°ΠΆΠ΄ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ²ΡΠ·Π°Π½Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° .
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅.
ΠΠΊΡΠ°ΡΡΠ΅:
- Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ²ΠΎΠΉΡΡΠ² Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ»
for
ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Object.keys()
. - ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΈΠΊΠ»
Π΄Π»Ρ
, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΡΠ²ΠΎΠΉ ΡΡΠ΅ΡΡΠΈΠΊ ΡΠ²ΠΎΠΉΡΡΠ². - ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
Object.keys()
, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΠΌΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° (ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°).
ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π»ΠΈΠ½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ»ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π»ΠΈΠ½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡ Π½Π΅ Π±ΠΎΠ»ΡΡΠ΅!
Object.keys Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² Π²ΡΠ΅Ρ
ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΠΌΡΡ
ΠΊΠ»ΡΡΠ΅ΠΉ ΡΠ²ΠΎΠΉΡΡΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π°Π·Π²Π°ΡΡ Π΄Π»ΠΈΠ½ΠΎΠΉ
, ΠΈ Π²ΡΠ°Π»Ρ! Π£ Π²Π°Ρ Π΅ΡΡΡ Π΄Π»ΠΈΠ½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° π
- ΠΠΎΡΠ΅ΠΌΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ Π΄Π»ΠΈΠ½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Enumerables
- ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°
- ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°
- Enumerable ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ true
- ΠΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΠΌΠΎΠ΅ ΡΠ΅Π·ΡΠΌΠ΅
- Object.Keys vs Object.GetownPropertyNames
- ΠΠ»ΠΈΠ½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ
- Π Π΅ΡΡΡΡΡ
ΠΠΎΡΠ΅ΠΌΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ½ΠΈΡΡ
Π΄Π»ΠΈΠ½ΠΎΠΉ
Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΠΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ. ΠΏΡΠΎΡΡΠΎ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ length
ΠΏΡΡΠΌΠΎ Π½Π° Π½Π°Ρ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅ΠΌ:
ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ
Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° length
. Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊΠ° 9ΠΠ°ΡΡΠΈΠ²Ρ 0009 ΠΈ
ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π΄Π»ΠΈΠ½Ρ
.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Enumerables
Π₯ΠΎΡΠΎΡΠΎ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π·Π°ΡΡΠΎΠ½Π΅ΠΌ Π΄ΡΡΠ³ΡΡ ΡΠ΅ΠΌΡ. Π― ΡΠΏΠΎΠΌΡΠ½ΡΠ» Π² Π½Π°ΡΠ°Π»Π΅, ΡΡΠΎ Object.keys
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌΡΡ
ΠΊΠ»ΡΡΠ΅ΠΉ ΡΠ²ΠΎΠΉΡΡΠ². ΠΡΠ°ΠΊ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΎΡΠΊΡΠ΄Π° Π±Π΅ΡΠ΅ΡΡΡ ΡΡΠΎΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌΡΠΉ Π°ΡΡΠΈΠ±ΡΡ
.
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°
ΠΠ±ΡΡΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°ΠΏΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΊΡ:
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Object.defineProperty
. ΠΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ 3 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. Π ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΠΌΡΠΉ Π°ΡΡΠΈΠ±ΡΡ.
Π₯ΠΎΡΠΎΡΠΎ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°:
Π₯ΠΌΠΌΠΌ. .. ΡΡΡΠ°Π½Π½ΠΎ. ΠΠΎΡΠ΅ΠΌΡ Π½Π°ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π½Π΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ π€ ΠΡ, ΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π°ΡΡΠΈΠ±ΡΡ enumerable
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false
. ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»ΡΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠ°Π²Π΄Π°
Π΅ΠΌΡ.
Enumerable ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΊΡ. ΠΠΎΡΠ΅ΠΌΡ ΠΎΠ½ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ? ΠΡ, ΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π½Π°Π·Π½Π°ΡΠ°Π΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π°ΡΡΠΈΠ±ΡΡ enumerable
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π²Π½ΡΠΌ true
.
Enumerable Summary
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· Π½Π°Ρ ΡΠ΅Π΄ΠΊΠΎ ΠΊΠ°ΡΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌΠΎΠ³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°. ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ, Π±ΡΠ΄Π΅Ρ Π»ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΈΠ»ΠΈ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ ΡΠΊΡΡΡΡΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΠ±ΡΠ΅ΠΊΡ.ΠΊΠ»ΡΡΠΈ
.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌΠΎΡΡΠΈ, Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΡ ΡΡΠ°ΡΡΡ, ΠΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌΠΎΡΡΡ Π² ECMAScript 6.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΠΌΡΠΉ Π°ΡΡΠΈΠ±ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΊΡΡΡΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Π² ECMAScript 1 Π±ΡΠ»Π° Π²Π²Π΅Π΄Π΅Π½Π° ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΠΌΠΎΡΡΡ.0009 , Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π»ΠΈΠ½Ρ,
Object.getOwnPropertyNames
.ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅,
Object.getOwnPropertyNames
Π²Π΅ΡΠ½Π΅Ρ ΠΠ‘Π ΠΊΠ»ΡΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ², ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊObject.keys
Π²Π΅ΡΠ½Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΠΌΡΠ΅ ΠΊΠ»ΡΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ². ΠΠ°ΠΊ Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π» ΡΠ°Π½Π΅Π΅, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΠΌΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΊΡΡΡΡ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π΅ Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊ Π½ΠΈΠΌ Π΄ΠΎΡΡΡΠΏ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ,Object.getOwnPropertyName
ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π»ΠΈΠ½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.ΠΠ»ΠΈΠ½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ
ΠΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
Object.keys
, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π»ΠΈΠ½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π₯ΠΎΡΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. Π ECMAScript 6, ES6, Π±ΡΠ» Π²Π²Π΅Π΄Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , Π½Π°Π·Π²Π°Π½Π½ΡΠΉΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ
.