Π Π°Π·Π½ΠΎΠ΅

Javascript Π΄Π»ΠΈΠ½Π° массива: ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ массивов

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ пСрСмСнная массивом Π² JavaScript? [Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚]

сущСствуСт нСсколько способов ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ пСрСмСнная массивом ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Π›ΡƒΡ‡ΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅-это Ρ‚ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ.

variable.constructor === Array

это самый быстрый ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π° Chrome, ΠΈ, скорСС всСго, всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹. ВсС массивы ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, поэтому ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° свойства конструктора являСтся быстрым процСссом для Π΄Π²ΠΈΠΆΠΊΠΎΠ² JavaScript.

Ссли Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с выяснСниСм, являСтся Π»ΠΈ свойство objects массивом, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сначала ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ свойство Ρ‚Π°ΠΌ.

variable.prop && variable.prop.constructor === Array

Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы:

variable instanceof Array

этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎ 1/3 скорости Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. ВсС Π΅Ρ‰Π΅ довольно Ρ‚Π²Π΅Ρ€Π΄Ρ‹ΠΉ, выглядит Ρ‡ΠΈΡ‰Π΅, Ссли Π²Ρ‹ всС ΠΎ красивом ΠΊΠΎΠ΄Π΅ ΠΈ Π½Π΅ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ variable instanceof Number всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ false. ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: instanceof сСйчас ΠΈΠ΄Π΅Ρ‚ 2/3 скорости!

Array.isArray(variable)

этот послСдний, Π½Π° ΠΌΠΎΠΉ взгляд, самый ΡƒΡ€ΠΎΠ΄Π»ΠΈΠ²Ρ‹ΠΉ, ΠΈ это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самый ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ. Запуск ΠΎΠΊΠΎΠ»ΠΎ 1/5 скорости Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°.ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ, Π½Π° самом Π΄Π΅Π»Π΅ массив. ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ здСсь https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray

Π˜Ρ‚Π°ΠΊ, Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅

Object.prototype.toString.call(variable) === '[object Array]';

этот ΠΏΠ°Ρ€Π΅Π½ΡŒ самый ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ массива. Однако, это ΠΎΠ΄Π½Π° остановка ΠΌΠ°Π³Π°Π·ΠΈΠ½ для любого Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅. Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ массив, просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ самый быстрый ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹ΡˆΠ΅.

ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, я ΠΏΡ€ΠΎΠ²Π΅Π» тСст:http://jsperf.com/instanceof-array-vs-array-isarray/33 Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ повСсСлись ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒ это.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: @EscapeNetscape создал Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ тСст ΠΊΠ°ΠΊ jsperf.com Π²Π½ΠΈΠ·. http://jsben. ch/#/QgYAV я Ρ…ΠΎΡ‚Π΅Π» ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ ссылка остаСтся всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° jsperf возвращаСтся Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Array)

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ основному ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΡŽ

  • Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΠΈ

    • HTML для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

    • CSS для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ HTML5

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ Canvas

    • XML для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ XML DTD

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ XML схСмам

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ XML DOM

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ XPath

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ XSLT

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ SVG

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ JavaScript

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ jQuery

  • Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Array

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ основному ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΡŽ

  • Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΠΈ

    • HTML для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

    • CSS для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ HTML5

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ Canvas

    • XML для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ XML DTD

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ XML схСмам

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ XML DOM

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ XPath

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ XSLT

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ SVG

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ JavaScript

    • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ jQuery

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ массива ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π½ΠΈΠΌ Π² JavaScript

Π’ этой части ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ°, ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ, созданиС массива Π² JavaScript ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π½ΠΈΠΌ, Π΄ΡƒΠΌΠ°ΡŽ Π²Π°ΠΌ понравится.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ массив:

Для Π½Π°Ρ‡Π°Π»Π° посмотрим Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ массив, Ссли ΠΊΡ€Π°Ρ‚ΠΊΠΎ говоря, Ρ‚ΠΎ это мСсто, Π³Π΄Π΅ хранятся нСсколько Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ индСксу.

ОбъявлСниС массива в JS:

ОбъявлСниС ΠΈΠ»ΠΈ созданиС массива происходит Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ созданиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, СдинствСнноС Π²Ρ‹ вмСсто Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки.

let arr1 = [] // ОбъявлСниС пустого массива

let arr2 = [«Π―Π±Π»ΠΎΠΊΠΎ», «Π‘Π°Π½Π°Π½», «ΠŸΠ΅Ρ€ΡΠΈΠΊ»] // ОбъявляСм массив с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ пустой массив ΠΈΠ»ΠΈ ΡƒΠΆΠ΅ Π½Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΏΡ€ΠΈ Ρ‡Ρ‘ΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой Ρ‚ΠΈΠΏ ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ Ρ‚ΠΎ Ρ‚Π°ΠΊ.

let arr = [«Π―Π±Π»ΠΎΠΊΠΎ», 835, true, function() {alert(«ΠŸΡ€ΠΈΠ²Π΅Ρ‚»)}]

Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎ функциях Π²Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ части.

Π’Π°ΠΊΠΆΠ΅ для создания массива, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс Array, Π²ΠΎΡ‚ ΠΊΠ°ΠΊ это дСлаСтся.

Let arr1 = new Array(); // ОбъявлСниС пустого массива

Let arr2 = new Array(«ΠŸΠ΅Ρ€ΡΠΈΠΊ», «Π―Π±Π»ΠΎΠΊΠΎ», «Π‘Π°Π½Π°Π½»); // ОбъявлСниС массива с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

Π Π°Π±ΠΎΡ‚Π° с массивами Π² JS:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивом, для Π½Π°Ρ‡Π°Π»Π° посмотрим ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ элСмСнт массива, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ Ρ€ΠΎ индСксу.

Π’Π°ΠΆΠ½ΠΎ:

Π’ JavaScript индСксация начинаСтся с нуля.

// Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ массив

let arr = [«Π―Π±Π»ΠΎΠΊΠΎ», «ΠŸΠ΅Ρ€ΡΠΈΠΊ», «Π‘Π°Π½Π°Π½»];

Β 

// Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ элСмСнт ΠΏΠΎ индСксу

console.log(arr[1]);

Π’ΡƒΡ‚ просто создаём массив ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π² консоль Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ индСксу ΠΎΠ΄ΠΈΠ½, Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π»ΠΎΡΡŒ.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρƒ нас вывСлся Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт, Ρ…ΠΎΡ‚ΡŒ ΠΈ использовали индСкс ΠΎΠ΄ΠΈΠ½, это всё ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, индСксация начинаСтся с нуля.

Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ вывСсти всС элСмСнты массива, для этого Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ».

// Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ массив

let arr = [«Π―Π±Π»ΠΎΠΊΠΎ», «ΠŸΠ΅Ρ€ΡΠΈΠΊ», «Π‘Π°Π½Π°Π½»];

Β 

// ПишСм Ρ†ΠΈΠΊΠ» for

for (let i = 0; i < arr. length; i++) {

Β Β Β Β console.log(arr[i]); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ элСмСнт Π² консоль

}

Π—Π΄Π΅ΡΡŒ всё ΠΊΡ€Π°ΠΉΠ½Π΅ просто, Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт, самоС интСрСсноС, это условиС, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ρ‚Π°ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ length, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство Π΄Π°Π½Π½Ρ‹Ρ….

Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° i строга мСньшС Ρ‚Ρ€Ρ‘Ρ…, Π² нашСм случаС.

Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ элСмСнт массива ΠΊΠ°ΠΊ Π²Π°ΠΌ Π½Π°Π΄ΠΎ, для этого просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹ΠΉ индСкс ΠΈ присваиваСтС Π΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ.

// Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ массив

let arr = [«Π―Π±Π»ΠΎΠΊΠΎ», «ΠŸΠ΅Ρ€ΡΠΈΠΊ», «Π‘Π°Π½Π°Π½»];

Β 

arr[1] = «ΠšΠΈΠ²ΠΈ»;

Β 

// ПишСм Ρ†ΠΈΠΊΠ» for

for (let i = 0; i < arr.length; i++) {

Β Β Β Β console.log(arr[i]); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ элСмСнт Π² консоль

}

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ вывСдСтся:

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами Π² JS:

Π’Π°ΠΊΠΆΠ΅ ΠΊΡ€ΠΎΠΌΠ΅ length Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами Π² JavaScript, здСсь ΠΏΠΎΠΊΠ°ΠΆΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ самыС основныС, ΠΈΡ… Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅.

  • push() β€” ДобавляСт элСмСнт Π² ΠΊΠΎΠ½Π΅Ρ† массива;
  • pop() β€” УдаляСт элСмСнт Π² ΠΊΠΎΠ½Ρ†Π΅ массива;
  • unshift() β€” ДобавляСм элСмСнт Π² Π½Π°Ρ‡Π°Π»Π° массива;
  • shift() β€” УдаляСм ΠΈΠ· массива ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт;
  • splice() β€” ЗамСняСт ΠΈΠ»ΠΈ удаляСт элСмСнты
  • concat() β€” ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ массивы;
  • farEach() β€” ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ массива;

Π­Ρ‚ΠΎ Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π±ΡƒΠ΄ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‡Π°Ρ‰Π΅ всСго, Π²ΠΎΡ‚ ΠΏΠ°Ρ€Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ.

// Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ массив

let arr = [«Π―Π±Π»ΠΎΠΊΠΎ», «ΠŸΠ΅Ρ€ΡΠΈΠΊ», «Π‘Π°Π½Π°Π½»];

Β 

// ДобавляСм элСмСнт Π² ΠΊΠΎΠ½Π΅Ρ† массива

arr.push(«ΠšΠΈΠ²ΠΈ»)

// УдаляСм элСмСнт Π² Π½Π°Ρ‡Π°Π»Π΅ массива

arr.shift()

Β 

// ПишСм Ρ†ΠΈΠΊΠ» for

for (let i = 0; i < arr.length; i++) {

Β Β Β Β console.log(arr[i]); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ элСмСнт Π² консоль

}

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ просто Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ измСняСм массив, сначала добавляСм Π² ΠΊΠΎΠ½Π΅Ρ† слово «Киви», Π° ΠΏΠΎΡ‚ΠΎΠΌ удаляСм элСмСнт ΠΈΠ· Π½Π°Ρ‡Π°Π»Π°, Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ получится.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ массива измСнился, Π² ΠΊΠΎΠ½Π΅Ρ† добавилось слово, Π° Π² Π½Π°Ρ‡Π°Π»Π° ΡƒΠ΄Π°Π»ΠΈΠ»ΠΎΡΡŒ.

Π’ΠΎΡ‚ этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ ΠΊΠ°ΠΊ происходит Π² JavaScript ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта массива ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π·Π°ΠΌΠ΅Π½Π°.

// Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ массив

let arr = [«Π―Π±Π»ΠΎΠΊΠΎ», «ΠŸΠ΅Ρ€ΡΠΈΠΊ», «Π‘Π°Π½Π°Π½»];

Β 

// УдаляСм ΠΈΠ· массива Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт

arr.splice(1, 1);

Β 

// ПишСм Ρ†ΠΈΠΊΠ» for

for (let i = 0; i < arr.length; i++) {

Β Β Β Β console.log(arr[i]); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ элСмСнт Π² консоль

}

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ splice(), ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, это с ΠΊΠ°ΠΊΠΎΠ³ΠΎ индСкса ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ элСмСнт, Π²Ρ‚ΠΎΡ€ΠΎΠΉ, количСство удаляСмых элСмСнтов.

Π•Ρ‰Ρ‘ благодаря этому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ элСмСнты.

// Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ массив

let arr = [«Π―Π±Π»ΠΎΠΊΠΎ», «ΠŸΠ΅Ρ€ΡΠΈΠΊ», «Π‘Π°Π½Π°Π½»];

Β 

// Π—Π°ΠΌΠ΅Π½Π° элСмСнтов

arr.splice(1, 2, «Π“Ρ€ΡƒΡˆΠ°», «ΠšΠΈΠ²ΠΈ»);

Β 

// ПишСм Ρ†ΠΈΠΊΠ» for

for (let i = 0; i < arr. length; i++) {

Β Β Β Β console.log(arr[i]); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ элСмСнт Π² консоль

}

Π’ΡƒΡ‚ послС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° количСство замСняСмых элСмСнтов, просто пСрСчисляСм всС элСмСнты ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

ПослСднСС Ρ‡Ρ‚ΠΎ ΠΌΡ‹ рассмотрим, это ΠΊΠ°ΠΊ Π² JavaScript ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ массив ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ массивом.

// Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ массив

let arr = [«Π―Π±Π»ΠΎΠΊΠΎ», «ΠŸΠ΅Ρ€ΡΠΈΠΊ», «Π‘Π°Π½Π°Π½»];

Β 

// ОбъСдиняСм два массива

arr = arr.concat([«Π“Ρ€ΡƒΡˆΠ°», «ΠšΠΈΠ²ΠΈ»])

Β 

// ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ массива

arr.forEach(function(item, key) {

Β Β Β Β // Π’Ρ‹Π²ΠΎΠ΄ элСмСнта ΠΈ Π΅Π³ΠΎ индСкса Π² консоль

Β Β Β Β console.log(`${item} ΠΈΠΌΠ΅Π΅Ρ‚ индСкс ${key}`);

})

Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΌΡ‹ ΠΊΠ°ΠΊ всСгда создаём Π½ΠΎΠ²Ρ‹ΠΉ массив, ΠΏΠΎΡ‚ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° concat(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ приминаСтся ΠΊ массиву, Π²Π½ΡƒΡ‚Ρ€ΠΈ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ массив, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΆΠ΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Ρ‘Π½Π½Ρ‹ΠΉ массив Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΡ‹ ΠΆΠ΅ присваиваСм это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΆΠ΅ созданному.

Π”Π°Π»ΡŒΡˆΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° forEach() ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ, Π²Π½ΡƒΡ‚Ρ€ΠΈ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² сСбя Π΅Ρ‰Ρ‘ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, это item, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта ΠΈ key, Π΅Π³ΠΎ индСкс.

Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ вСсь массив Π² консоль, Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρƒ нас вывСлся ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Ρ‘Π½Π½Ρ‹ΠΉ массив, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, всё ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π’Ρ‹Π²ΠΎΠ΄:

Π’ этой части Π²Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ ΠΎ созданиС массива Π² JavaScript ΠΈ ΡƒΠ·Π½Π°Π»ΠΈ Ρ‡Ρ‚ΠΎ это Π²ΠΎΠΎΠ±Ρ‰Π΅ Ρ‚Π°ΠΊΠΎΠ΅, Π½Ρƒ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, поняли ΠΊΠ°ΠΊ с этим Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚Π΅ΡΡŒ Π½Π° соц-сСти:

JavaScript: массивы (array)

Π’ ΠΆΠΈΠ·Π½ΠΈ ΠΌΡ‹ часто
сталкиваСмся со списками: список студСнтов, ΠΌΠ°Ρ€ΠΎΠΊ машин, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ,
элСмСнтов HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ
Ρ‚.ΠΏ. Π’Π°ΠΊ Π²ΠΎΡ‚, для хранСния упорядочСнных ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ сущСствуСт особая структура
Π΄Π°Π½Π½Ρ‹Ρ…, которая называСтся массивом (ΠΏΠΎ Π°Π½Π³Π». array).

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ массивы Π²
JavaScript Π·Π°Π΄Π°ΡŽΡ‚ΡΡ с
ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° – ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок:

let ar = [];Β  //пустой массив
let ar = [1, 30, 0, -2]; //ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив чисСл

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт
раздСляСтся запятой. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹ здСсь объявили массив ΠΈΠ· 4-Ρ… чисСл. Или,
Ρ‚Π°ΠΊ:

let ar = ["Яблоко", "АпСльсин", "Блива"];

Π—Π΄Π΅ΡΡŒ ΠΈΠΌΠ΅Π΅ΠΌ
массив ΠΈΠ· Ρ‚Ρ€Π΅Ρ… строковых элСмСнтов. Для обращСния ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ элСмСнту массива
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊΠΎΠΉ синтаксис:

<имя массива>[индСкс элСмСнта]

НапримСр,
Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта массива ar Π² консоль:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅
Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта массива Ρ€Π°Π²Π΅Π½ 0, Π½Π΅ 1, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ Π²
повсСднСвной ΠΆΠΈΠ·Π½ΠΈ, Π° 0! Π—Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ это. БоотвСтствСнно, Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт ΠΈΠΌΠ΅Π΅Ρ‚
индСкс 1 ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅:

console.log( ar[1] );
console.log( ar[2] );

Π›ΡŽΠ±ΠΎΠΉ элСмСнт
массива ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΡ‚ ΠΆΠ΅ синтаксис:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ наш
массив содСрТит элСмСнты: «Π―Π±Π»ΠΎΠΊΠΎ», «Π“Ρ€ΡƒΡˆΠ°»,
«Π‘Π»ΠΈΠ²Π°». Π’ΠΎΡ‚ Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ элСмСнтам массива для считывания
ΠΈΠ»ΠΈ измСнСния ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π’ любой массив
ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ элСмСнты, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊ:

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹
ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ индСкс элСмСнта, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«Π›ΠΈΠΌΠΎΠ½Β» ΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ
Ρ‚Π°ΠΊΠΎΠ³ΠΎ элСмСнта Π½Π΅Ρ‚, Ρ‚ΠΎ ΠΎΠ½ добавляСтся. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ массив ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…
строк:

«Π―Π±Π»ΠΎΠΊΠΎ», «Π“Ρ€ΡƒΡˆΠ°», «Π‘Π»ΠΈΠ²Π°», «Π›ΠΈΠΌΠΎΠ½»

Π£ массива Π΅ΡΡ‚ΡŒ
свойство length, хранящСС
Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ индСксу плюс ΠΎΠ΄ΠΈΠ½:

Array.length = maxIndex+1

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ это
свойство, ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ» вывСсти значСния всСх элСмСнтов массива:

for(let i=0;i < ar.length;++i)
    console.log( ar[i] );

Но ΠΌΠΎΠΆΠ½ΠΎ это
ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ Ρ‚Π°ΠΊ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅
Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, length – это Π½Π΅ число
элСмСнтов массива Π² ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΌ Π½Π°ΠΌ Π²ΠΈΠ΄Π΅. НапримСр, Ссли Π² наш массив Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ
Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ элСмСнт с большим индСксом:

ar[999] = 'Π’ΠΈΠ½ΠΎΠ³Ρ€Π°Π΄';

Ρ‚ΠΎ length = 1000, Π½ΠΎ Π²
массивС Π±ΡƒΠ΄Π΅Ρ‚ всСго ΠΏΡΡ‚ΡŒ элСмСнтов:

«Π―Π±Π»ΠΎΠΊΠΎ»,
«Π“Ρ€ΡƒΡˆΠ°», «Π‘Π»ΠΈΠ²Π°», «Π›ΠΈΠΌΠΎΠ½» ΠΈ «Π’ΠΈΠ½ΠΎΠ³Ρ€Π°Π΄»
(с индСксом 999)

Π”Π°Π»Π΅Π΅, ΠΏΡ€ΠΈ
ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ массива Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ», Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ
значСния undefined ΠΈ ошибки
Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚.

Π’ JavaScript свойство length ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ
Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ, имССтся Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ массив ΠΈΠ· чисСл:

let dig = [1, 2, 3, 4, 5];

Π΄Π°Π»Π΅Π΅, ΠΌΡ‹
ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅ΠΌ Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Ρƒ:

Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ наш
массив содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€ΠΈ элСмСнта. Если ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ снова
Π΄ΠΎ 5:

Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ
ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ послСдниС Π΄Π²Π° элСмСнта ΡƒΠΆΠ΅ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚:

Π’ΠΎΡ‚ Ρ‚Π°ΠΊ Ρ‡Π΅Ρ€Π΅Π·
свойство length ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π΅Π·Π°Ρ‚ΡŒ
Π΄Π»ΠΈΠ½Ρƒ массивов.

Π―Π·Ρ‹ΠΊ JavaScript ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½
Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² массивС ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ элСмСнты любого Ρ‚ΠΈΠΏΠ°. НапримСр:

let ar = [ 'Π―Π±Π»ΠΎΠΊΠΎ', { name: 'Π”ΠΆΠΎΠ½' }, true, function() { alert('ΠΏΡ€ΠΈΠ²Π΅Ρ‚'); } ];

И Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Π²
консоль свойство name Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ элСмСнта:

console.log( ar[1].name );

ΠŸΡ€ΠΈΡ‡Π΅ΠΌ, массив
Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ строкС, ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Ρ‚Π°ΠΊ:

let ar = [ 'Π―Π±Π»ΠΎΠΊΠΎ', { name: 'Π”ΠΆΠΎΠ½' }, 
    Β Β Β Β Β Β  true, 
    Β Β Β Β Β Β  function() { alert('ΠΏΡ€ΠΈΠ²Π΅Ρ‚'); } ];

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² JavaScript – это особого
Π²ΠΈΠ΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с упорядочСнными коллСкциями
Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ. Π—Π΄Π΅ΡΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово –
упорядочСнныС. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π²ΠΈΠΆΠΎΠΊ JavaScript стараСтся Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ элСмСнты
массива Π² Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ области памяти, ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΈ это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· способов
ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Но ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ всС это Π»Π΅Π³ΠΊΠΎ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ, Ссли Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ
массивы ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΊ массивы. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ пустой массив:

Π°, Π·Π°Ρ‚Π΅ΠΌ, Π²
ΠΎΡ‡Π΅Π½ΡŒ дальний индСкс запишСм ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

ВСхничСски Ρ‚Π°ΠΊ
всС Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΡƒΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚
ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅. Или, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ Ρ‚Π°ΠΊ:

Π’Π°ΠΊ ΠΊΠ°ΠΊ массив –
это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‚ΠΎ ΠΌΡ‹ просто создаСм свойство zero со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ null. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ
здСсь Ρ‚ΠΎΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. НаконСц, заполняя массив с ΠΊΠΎΠ½Ρ†Π°:

digits[100] = 100;
digits[99] = 99;
…

ΠΌΡ‹ Ρ‚ΠΎΠΆΠ΅ тСряСм
ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ. Π’ΠΎ всСх этих случаях Π΄Π²ΠΈΠΆΠΎΠΊ JavaScript Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ,
Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с массивом ΠΊΠ°ΠΊ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈ оптимизация Π±ΡƒΠ΄Π΅Ρ‚
ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли ΡƒΠΆ Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ массив, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ
ΠΏΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, заполняйтС ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹ΠΌΠΈ значСниями ΠΏΠΎ порядку ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅
встроСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΅Π³ΠΎ элСмСнтов.

ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ элСмСнтов массива

Один ΠΈΠ· распространСнных
способов ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° элСмСнтов массива ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ – это Ρ†ΠΈΠΊΠ» for:

НапримСр, для
массива:

let fruits = ["Π―Π±Π»ΠΎΠΊΠΎ", "АпСльсин", "Π“Ρ€ΡƒΡˆΠ°"];

ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ
элСмСнты ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ:

for(let i=0;i < fruits.length; ++i)
    console.log( fruits[i] );

ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ всС
значСния элСмСнтов. Но Π΅ΡΡ‚ΡŒ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π½ΠΎΠ²Ρ‹ΠΉ способ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for of:

for(let value of fruits)
    console.log( value );

Π­Ρ‚Π°
запись ΠΊΠΎΡ€ΠΎΡ‡Π΅, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ свои особСнности: значСния массива ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π²
ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ value, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ,
Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ Π½Π΅ с самими значСниями массива fruits, Π° с ΠΈΡ…
копиями. НапримСр, ΠΈΠ·-Π·Π° этого ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠ΅Π½ΡΡ‚ΡŒ значСния элСмСнтов массива
Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°:

for(let value of fruits) {
 Β Β Β  value = "none";
}
Β 
console.log(fruits);

Π’ консолС ΠΌΡ‹
ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΉ массив. А Π²ΠΎΡ‚ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Ρ‚Π°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ:

for(let i=0;i < fruits.length; ++i)
    fruits[i] = "none";

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠΌ
Ρ†ΠΈΠΊΠ»Π° for of являСтся Π΅Π³ΠΎ
оптимизация ΠΏΠΎΠ΄ массивы. Π’ частности, ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² 10-100 Ρ€Π°Π· быстрСС Ρ†ΠΈΠΊΠ»Π° for in, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹
рассматривали Ρ€Π°Π½Π΅Π΅, для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΅Π³ΠΎ:

for(let key in fruits)
    console.log( fruits[key] );

Но это Π±ΡƒΠ΄Π΅Ρ‚
ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Ρ‚Π°ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ всС ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ массива, Π° Π½Π΅
Ρ‚ΠΎΠ»ΡŒΠΊΠΎ цСлочислСнныС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ индСксами элСмСнтов массива. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ,
Π²Ρ‹Π²ΠΎΠ΄ Ρ‚Π°ΠΊΠΎΠΉ. НуТно ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ массив, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΠ»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» for ΠΈΠ»ΠΈ Ρ†ΠΈΠΊΠ» for of.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΈΒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π²Β JavaScript ΠΊΠ°ΠΊ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈΒ Π³Π°Π·Π΅Ρ‚Ρ‹ β€” Π‘Π»ΠΎΠ³ HTML Academy

Если Π²Ρ‹Β Ρ‡ΠΈΡ‚Π°Π»ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈΒ Π³Π°Π·Π΅Ρ‚Ρ‹, Ρ‚ΠΎΒ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠΉΠΌΡ‘Ρ‚Π΅ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ и массивами Π²Β JavaScript.

Π’Β Π½Π°Ρ‡Π°Π»Π΅ изучСния JavaScript ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ в способах хранСния Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Β ΠΎΠ΄Π½ΠΎΠΉ стороны, массивы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌΡ‹ Π²Π°ΠΌ благодаря Ρ†ΠΈΠΊΠ»Ρƒ for. Но, ΠΏΠΎΒ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹Β Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ массив Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ всё ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌ.

Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ и массивом станСт ΠΏΡ€ΠΎΡ‰Π΅, Ссли ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ сСбС Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Π° Ρ‚Π°Β ΠΈΠ»ΠΈ иная структура. ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ ΠΊΠ½ΠΈΠ³Π°ΠΌ, Π²Β ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТится Ρ‚Π°Β ΠΈΠ»ΠΈ иная информация, Π°Β ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π°Β Π³Π°Π·Π΅Ρ‚Ρƒ.

РазбСрёмся с этим.

ΠœΠ°ΡΡΠΈΠ²Ρ‹: порядок Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ΅Π½

ВзглянСм Π½Π°Β Π½Π°ΡˆΡƒ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ, Ссли бы ΠΎΠ½Π° Π±Ρ‹Π»Π° массивом:

var book = [`foreword`, `boyWhoLived`, `vanishingGlass`, `lettersFromNoOne`, `afterword`];

ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅Β β€” это ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€ΠΈ Π³Π»Π°Π²Ρ‹ ΠΊΠ½ΠΈΠ³ΠΈ Β«Π“Π°Ρ€Ρ€ΠΈ ΠŸΠΎΡ‚Ρ‚Π΅Ρ€ и философский камСнь». Π˜Β Π²ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ ΠΈΡ…:


Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ массивы Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ большоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.


НадСюсь, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΡ‚ΠΎ нС глядит Π½Π°Β ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈΒ Π½Π΅Β Π΄ΡƒΠΌΠ°Π΅Ρ‚: Β«Π₯ΠΌ, эта Π³Π»Π°Π²Π° выглядит интСрСсной, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ Π½Π°Ρ‡Π½Ρƒ с нСё». ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Π³Π»Π°Π² Π²Β ΠΊΠ½ΠΈΠ³Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Π΅Ρ‘Β Π½ΡƒΠΆΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ.

Когда Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ массив, Ρ‚ΠΎΒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½ΠΎΠΌΠ΅Ρ€ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта массива. ΠœΠ°ΡΡΠΈΠ²Ρ‹Β β€” это структуры Π΄Π°Π½Π½Ρ‹Ρ…, Π³Π΄Π΅ нумСрация начинаСтся с нуля, поэтому ΠΌΡ‹Β Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Π²Β Π½ΠΈΡ… отсчёт с 0, Π°Β Π½Π΅Β 1.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, Ссли Π²Ρ‹Β Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊΒ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ элСмСнту массива, Ρ‚ΠΎΒ ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ‚Π°ΠΊ:

book[0]

Π˜Β Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅:

`foreword`


Если Π½ΡƒΠΆΠ½Π° Ρ‚Ρ€Π΅Ρ‚ΡŒΡ Π³Π»Π°Π²Π°, Ρ‚ΠΎΒ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ‚Π°ΠΊ:

book[2]

Π’Ρ‹Β Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΊΠ½ΠΈΠ³Ρƒ, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ на порядкС Π³Π»Π°Π² Π²Β ΠΊΠ½ΠΈΠ³Π΅, а нС по названию этих Π³Π»Π°Π².

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹: Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΊΠ°ΠΊΒ Π±Ρ‹ выглядСла Π³Π°Π·Π΅Ρ‚Π° Π²Β Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:


var newspaper = {

 sports: `ARod Hits Home Run`,
 business: `GE Stock Dips Again`,
 movies: `Superman Is A Flop`

}

А вот Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ Π΅Ρ‘:

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹Β β€” Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€ Ссли Π²Ρ‹Β Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ по названию Π΄Π°Π½Π½Ρ‹Ρ….

Читая Π³Π°Π·Π΅Ρ‚Ρƒ, мы нС обязаны Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‘Β Β«ΠΎΡ‚Β ΠΊΠΎΡ€ΠΊΠΈ Π΄ΠΎΒ ΠΊΠΎΡ€ΠΊΠΈΒ». МоТно Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ с любого интСрСсного для Ρ€Π°Π·Π΄Π΅Π»Π°. НСваТно, Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ этот Ρ€Π°Π·Π΄Π΅Π» находится Π²Β Π³Π°Π·Π΅Ρ‚Π΅, контСкст сохраняСтся. Π­Ρ‚ΠΎ ΠΈΒ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ Π³Π°Π·Π΅Ρ‚Ρƒ ΠΎΡ‚Β ΠΊΠ½ΠΈΠ³ΠΈ, Π³Π΄Π΅ Π²Π°ΠΆΠ½Π° строгая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чтСния Π³Π»Π°Π².

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ хранят ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²Β Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это выглядит:

key: value

Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π³Π°Π·Π΅Ρ‚Ρƒ с новостСй бизнСса, Ρ‚ΠΎΒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ слСдуСт Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ»ΡŽΡ‡:

newspaper[`business`]

Или Ρ‚Π°ΠΊΠΎΠΉ:

newspaper.business

Π­Ρ‚ΠΎ Π²Π΅Ρ€Π½Ρ‘Ρ‚ Π½Π°ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

GE Stock Dips Again

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊΠΎΠ³Π΄Π° Π»Π΅Π³Ρ‡Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π½Π° основании ΠΈΡ… ΠΈΠΌΡ‘Π½ (ΠΊΠ»ΡŽΡ‡Π°), Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

ОбъСдиняСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ и массивы

Π’Β ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π²Ρ‹ΡˆΠ΅ Π²Β Π½Π°ΡˆΠΈΡ… массивах ΠΈΒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… ΠΌΡ‹Β Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строки. Но моТно Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ числа ΠΈΠ»ΠΈ Π±ΡƒΠ»Π΅Π²Ρ‹ значСния, Π°Β Ρ‚Π°ΠΊΠΆΠ΅:

  1. ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².
  2. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ массивов.
  3. ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ массивов.
  4. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π­Ρ‚ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ слоТным. Но вам всСгда Π½ΡƒΠΆΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ комбинация ΠΈΠ·Β Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ² для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹Β ΠΆΠ΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π²Β ΠΊΠΎΠ΄Π΅ спустя врСмя, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Β Π½Ρ‘ΠΌ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ?

Π”Π°Π²Π°ΠΉΡ‚Π΅ снова Π²ΠΎΠ·ΡŒΠΌΡ‘ΠΌ ΠΊΠ½ΠΈΠ³Ρƒ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π§Ρ‚ΠΎ Ссли ΠΌΡ‹Β Ρ…ΠΎΡ‚ΠΈΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ и количСство страниц Π²Β ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Π»Π°Π²Π΅? Π’Β Ρ‚Π°ΠΊΠΎΠΌ случаС стоит Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ наш массив ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ:


var book = [

 [`foreword`, 14],
 [`boywholived`, 18]

]

var book = [

 {name:`foreword`, pageCount: 14},
 {name:`boyWhoLived`, pageCount: 18},
 {name:`vanishingGlass`, pageCount: 13},
 {name:`lettersFromNoOne`, pageCount: 17},
 {name:`afterword`, pageCount: 19}

];

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, мы сохранили порядок Π³Π»Π°Π² ΠΈΒ Π²Β Ρ‚ΠΎΒ ΠΆΠ΅ врСмя Ρ€Π°Π·Π½Ρ‹Π΅ свойства для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Π»Π°Π²Ρ‹. НапримСр, Ссли Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ сколько страниц Π²ΠΎΒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π³Π»Π°Π²Π΅, Ρ‚ΠΎΒ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ:

book[1][`pageCount`]

Π’Β Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹Β ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Β ΠΊΠ½ΠΈΠ³Π΅ Π±ΡƒΠ΄Π΅Ρ‚ 18 страниц.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ прСдставим, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠΏ-писатСлСй для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ новостСй Π²Β Π³Π°Π·Π΅Ρ‚Π΅. МоТно быстро ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ массива Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:


var newspaper = {

 sports: `ARod Hits Home Run`,
 sportsWriters: [`Miramon Nuevo`, `Rick Reilly`, `Woddy Paige`],
 business: `GE Stock Dips Again`,
 businessWriters: [`Adam Smith`, `Albert Humphrey`, `Charles Handy`],
 movies: `Superman Is A Flop`,
 moviesWriters: [`Rogert Ebert`, `Andrew Sarris`, `Wesley Morris`]

}

Массив ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΒ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π΅ писатСлСй, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ в массивС порядок ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’Ρ‹Β Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ старыС Π°Π²Ρ‚ΠΎΡ€Ρ‹ ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ Π½ΠΎΠ²Ρ‹Π΅ и это Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ массива. ΠŸΠΈΡΠ°Ρ‚Π΅Π»ΡŒ с номСром 0Β Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠΏ-писатСлСм.

МоТно ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, просто создав ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ нашСго ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° newspaper. НапримСр, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ sports с заголовком и списком писатСлСй. ΠΠΎΒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ я хочу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вы сами ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ.

ΠŸΠΈΡˆΠΈΡ‚Π΅ ваши Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π²Β ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈΒ ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π»Π°ΠΉΠΊΠΈ.

Π”Π»ΠΈΠ½Π° массива Π² javaScript ΠΈ устранСниС ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹

Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π»ΠΈΠ½Π° массива Π² javaScript — Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ вопрос, ΠΈ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊ. Однако ΠΏΡ€ΠΈ блиТайшСм рассмотрСнии каТСтся, Ρ‡Ρ‚ΠΎ это Π½Π΅Ρ‡Ρ‚ΠΎ большСС, Ρ‡Π΅ΠΌ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ осмотрС. Один ΠΈΠ· способов ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ± этом ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π»ΠΈΠ½Π° массива Π² javaScript относится ΠΊ Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ индСкса массива плюс ΠΎΠ΄ΠΈΠ½, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΄Π»ΠΈΠ½Π° массива Ρ€Π°Π²Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅, Π° Π½Π΅ Π½ΡƒΠ»ΡŽ.Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ числовых индСксов массивов, числа Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с нуля, Π° Π½Π΅ с Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹, ΠΊΠ°ΠΊ Π² случаС свойства Π΄Π»ΠΈΠ½Ρ‹ массива. Однако Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ большС, Ρ‡Π΅ΠΌ просто ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΠΎΠΌ для этого Π½Π° самом Π΄Π΅Π»Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС элСмСнты ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ пустыми элСмСнтами, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π»ΠΈΠ½Π° массива Π½Π΅ всСгда ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ счСтчиком массива.

Π˜Ρ‚Π°ΠΊ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π΄Π»ΠΈΠ½Π° массива — это просто свойство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ самый высокий индСксированный ΠΊΠ»ΡŽΡ‡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° массива, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях Ρ‚Π°ΠΌ фактичСски Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅Ρ‚. Π’ΠΎΠ³Π΄Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ смыслС это просто способ объявлСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° элСмСнта, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· этих элСмСнтов ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΊΠ»ΡŽΡ‡Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅Ρ‚.

Π”Π»ΠΈΠ½Π° отличаСтся ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΌΡƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ массив ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ Π² памяти. БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ счСтчиком массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ относится ΠΊ количСству фактичСски ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Ρ… элСмСнтов Π² массивС, ΠΈ это количСство массива ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ элСмСнты.

Π˜Ρ‚Π°ΠΊ, ΠΏΠΎ большСй части, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, свойство Π΄Π»ΠΈΠ½Ρ‹ массива Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ свСтС. Однако Π΅ΡΡ‚ΡŒ нСсколько ситуаций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ. Π˜Ρ‚Π°ΠΊ, Π² этом постС, посвящСнном Π΄Π»ΠΈΠ½Π΅ массива Π² javaScript, я ΡƒΠ΄Π΅Π»ΡŽ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, это Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ пост, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Π±ΡƒΠ΄Ρƒ часто ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ.

1 — ΠžΡΠ½ΠΎΠ²Ρ‹ Π΄Π»ΠΈΠ½Ρ‹ массива Π² javaScript

По большСй части Π΄Π»ΠΈΠ½Π° массива Π² javaScript являСтся довольно простой ΠΈ понятной ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ, всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ массивам ΠΈ массивам, ΠΈΠΌΠ΅ΡŽΡ‚ свойство Π΄Π»ΠΈΠ½Ρ‹.Π­Ρ‚ΠΎ свойство Π΄Π»ΠΈΠ½Ρ‹ обновляСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько элСмСнтов Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² массив, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° массива, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Array.pop ΠΈΠ»ΠΈ Array.splice. Однако сущСствуСт Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΈ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ счСтчиком ΠΏΡ€ΠΈ рассмотрСнии массивов Π² js. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом ΠΏΠΎΠ·ΠΆΠ΅ Π² этом постС, Π° ΠΏΠΎΠΊΠ° Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим основы Π΄Π»ΠΈΠ½Ρ‹ массива Π² javaScript.

1.1 — Π”Π»ΠΈΠ½Π° массива являСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ, Π° значСния индСкса — ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π½ΡƒΠ»Π΅ΠΌ.

Одной ΠΈΠ· основных ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΎ массивах, являСтся ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ индСкса массива Π² срСдС программирования javaScript.ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² javaScript — это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ свойство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся элСмСнтом массива, ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ индСкса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ со значСния ΠΎΡ‚ нуля Π²Π²Π΅Ρ€Ρ… Π΄ΠΎ Π΄Π»ΠΈΠ½Ρ‹ массива минус ΠΎΠ΄ΠΈΠ½.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, эти Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ значСния индСксов ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π½ΡƒΠ»Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с нуля ΠΈ ΠΈΠ΄ΡƒΡ‚ Π²Π²Π΅Ρ€Ρ… ΠΎΡ‚Ρ‚ΡƒΠ΄Π°, Π° Π½Π΅ с Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹.

Бвойство Π΄Π»ΠΈΠ½Ρ‹ массива JavaScript, объяснСнноС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ 4 ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²

Бвойство Π΄Π»ΠΈΠ½Ρ‹ массива Π² JavaScript

Бвойство Π΄Π»ΠΈΠ½Ρ‹ массива Π² JavaScript ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установки ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΎΠ±Ρ‰Π΅ΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΠΈΠ»ΠΈ количСства элСмСнтов Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ массивС.

Бвойство JS length особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для управлСния элСмСнтами массива.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, это свойство ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ†ΠΈΠΊΠ»Π°Ρ… for ΠΈ while для получСния ΠΎΠ±Ρ‰Π΅Π³ΠΎ числа элСмСнтов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ условия.

НапримСр:

var Arrnum = [5,10,15,20,25];

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½Π°Ρ Π΄Π»ΠΈΠ½Π°

Он Π²Π΅Ρ€Π½Π΅Ρ‚ 5.

Π‘ΠΌ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования свойства JavaScript length.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ свойства Π΄Π»ΠΈΠ½Ρ‹ массива для получСния ΠΎΠ±Ρ‰Π΅Π³ΠΎ количСства элСмСнтов

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я создал массив ΠΈΠ· пяти элСмСнтов. ПослС этого свойство Π΄Π»ΠΈΠ½Ρ‹ массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° количСства элСмСнтов Π² этом массивС, присвоСнных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. НаконСц, Π΄Π»ΠΈΠ½Π° массива отобраТаСтся Π² ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΈ.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½-Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΈ ΠΊΠΎΠ΄

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования свойства Π΄Π»ΠΈΠ½Ρ‹ массива с Ρ†ΠΈΠΊΠ»ΠΎΠΌ for

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ свойство Π΄Π»ΠΈΠ½Ρ‹ массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ†ΠΈΠΊΠ»Π΅ for для указания количСства Ρ€Π°Π·, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ†ΠΈΠΊΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ i.Π΅. Π² части состояния. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ массива ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² элСмСнтС div HTML.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½-Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΈ ΠΊΠΎΠ΄

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ свойство length ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ†ΠΈΠΊΠ»Π΅ for:

для (num = 0; num

displayArray + = Arrnum [num] + Β«
Β»;

}

Код Аррнум.Π΄Π»ΠΈΠ½Π° Π·Π°Π΄Π°Π΅Ρ‚ Ρ‡Π°ΡΡ‚ΡŒ условия для Ρ†ΠΈΠΊΠ»Π° . Π’ этом случаС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ элСмСнтов массива ΠΏΡΡ‚ΡŒ, Ρ†ΠΈΠΊΠ» выполняСтся ΠΏΡΡ‚ΡŒ Ρ€Π°Π·.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ свойства массива Π΄Π»ΠΈΠ½Ρ‹ с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ push

ΠœΠ΅Ρ‚ΠΎΠ΄ length Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ всС элСмСнты массива Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя создания, Π½ΠΎ ΠΈ элСмСнты, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ части ΠΈΠ»ΠΈ динамичСски.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ массив ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ создаСтся ΠΈΠ· Ρ‚Ρ€Π΅Ρ… элСмСнтов. ПослС этого, , ΠΌΠ΅Ρ‚ΠΎΠ΄ push массивов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для добавлСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов Π² этот массив.

Π”Π»ΠΈΠ½Π° массива ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΈ послС добавлСния элСмСнтов отобраТаСтся Π² ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ дСмонстрационной страницы.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½-Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΈ ΠΊΠΎΠ΄

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π² Π΄Π»ΠΈΠ½Π΅ Π΄ΠΎ ΠΈ послС использования ΠΌΠ΅Ρ‚ΠΎΠ΄Π° проталкивания массива.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ сокращСния / установки Π΄Π»ΠΈΠ½Ρ‹ массива

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, свойство length ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для установки Π΄Π»ΠΈΠ½Ρ‹ массива, Π° Ρ‚Π°ΠΊΠΆΠ΅ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΎΠ±Ρ‰Π΅Π³ΠΎ количСства элСмСнтов Π² массивС.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создаСтся массив ΠΈΠ· пяти элСмСнтов. ПослС этого свойство length ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установки массива Ρ€Π°Π²Π½Ρ‹ΠΌ Ρ‚Ρ€Π΅ΠΌ. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅:

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½-Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΈ ΠΊΠΎΠ΄

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ свойство Π΄Π»ΠΈΠ½Ρ‹:

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

14

18

19

20

21

var Arrnum = [5,10,15,20,25];

var num;

var displayArray = «Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ массив: [5,10,15,20,25]

Массив послС установки Π΄Π»ΠΈΠ½Ρ‹: Arrnum.length = 3;
«;

// Установка Π΄Π»ΠΈΠ½Ρ‹ массива

Arrnum.length = 3;

for (num = 0; num

displayArray + = Arrnum [num] + «
«;

}

displayArray + = «

ΠžΠ±Ρ‰Π°Ρ Π΄Π»ΠΈΠ½Π° массива =» + Arrnum. length;

document.getElementById («div_demo»). InnerHTML = displayArray;

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π΄Π»ΠΈΠ½Π° массива сокращСна Π΄ΠΎ Ρ‚Ρ€Π΅Ρ… элСмСнтов.

Бвойство Π΄Π»ΠΈΠ½Ρ‹ массива

JavaScript — GeeksforGeeks

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ свойства Π”Π»ΠΈΠ½Π° массива .

  • ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ возвращаСтся Π΄Π»ΠΈΠ½Π° массива.

    < HTML >

    < Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° >

    < Π½Π°Π·Π²Π°Π½ΠΈΠ΅ >

    JavaScript Π”Π»ΠΈΠ½Π° массива Бвойство

    Π½Π°Π·Π²Π°Π½ΠΈΠ΅ >

    < ΡΡ‚ΠΈΠ»ΡŒ >

    корпус {

    Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ тСкста: ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ;

    }

    h2 {

    Ρ†Π²Π΅Ρ‚: Π·Π΅Π»Π΅Π½Ρ‹ΠΉ;

    }

    ΡΡ‚ΠΈΠ»ΡŒ >

    Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° >

    < корпус >

    < h2 > GeeksforGeeks h2 >

    < h3 >

    JavaScript Π”Π»ΠΈΠ½Π° массива Бвойство

    h3 >

    < ΠΊΠ½ΠΎΠΏΠΊΠ° onclick = "array ()" >

    Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ здСсь!

    ΠΊΠ½ΠΎΠΏΠΊΠ° >

    < p id = "gfg" > p >

    < скрипт >

    массив Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ () {

    var colors = ["Π·Π΅Π»Π΅Π½Ρ‹ΠΉ", "синий", "красный",

    Β«ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉΒ», Β«Ρ‡Π΅Ρ€Π½Ρ‹ΠΉΒ», Β«Π±Π΅Π»Ρ‹ΠΉΒ»];

    Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. getElementById ("gfg"). innerHTML

    = Π΄Π»ΠΈΠ½Π° Ρ†Π²Π΅Ρ‚Π°;

    }

    скрипт >

    корпус >

    HTML >

  • Π’Ρ‹Ρ…ΠΎΠ΄:

Бвойство Π΄Π»ΠΈΠ½Ρ‹ массива Π² JavaScript ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установки ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° количСства элСмСнтов Π² массивС.

Бинтаксис:

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установки Π΄Π»ΠΈΠ½Ρ‹ массива.
     array.length = число 
  • Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ массива.
     массив. Π”Π»ΠΈΠ½Π° 

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅Π΅ количСство элСмСнтов Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ массива.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄ΠΎΠ² для ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ свойства:
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 1:

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство Π΄Π»ΠΈΠ½Ρ‹ массива JavaScript с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

Бвойство Π΄Π»ΠΈΠ½Ρ‹ массива

Бвойство Π΄Π»ΠΈΠ½Ρ‹ массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΈΠ»ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ массива. Бвойство length вСсьма ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для получСния счСтчика массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ†ΠΈΠΊΠ»Π΅ for для выполнСния ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ дСйствия Π½Π° основС элСмСнтов массива.

Π‘ΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ свойства Π΄Π»ΠΈΠ½Ρ‹.

Из этого Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π° Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство Π΄Π»ΠΈΠ½Ρ‹ массива JavaScript с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ, Π½ΠΎ Π΄Π°Π²Π°ΠΉΡ‚Π΅ сначала рассмотрим Π΅Π³ΠΎ ΠΎΠ±Ρ‰ΠΈΠΉ синтаксис.

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство Π΄Π»ΠΈΠ½Ρ‹ массива?

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΎΠ±Ρ‰ΠΈΠΉ синтаксис использования свойства Π΄Π»ΠΈΠ½Ρ‹ массива:

имя-массива.length

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ массива JS:

Arrayname.length = no_of_elements

Π‘ΠΌ. ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ свойствС length .

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива ΠΏΠΎ свойству Π΄Π»ΠΈΠ½Ρ‹

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства Π΄Π»ΠΈΠ½Ρ‹ массива. ΠœΡ‹ создали массив NumArr , ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива JavaScript с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства length.

Π˜ΡΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ½Π»Π°ΠΉΠ½

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

14

18

19

20

21

9000 ”2 <Ρ‚ΠΈΠΏ скрипта =

var NumArr = [1,2,3,4,5];

ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ (NumArr.Π΄Π»ΠΈΠ½Π°);

ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π»ΠΈΠ½Ρ‹ массива JavaScript Ρ†ΠΈΠΊΠ» for

Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство Π΄Π»ΠΈΠ½Ρ‹ массива Π² Ρ†ΠΈΠΊΠ»Π΅ for, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π΅Π» ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ элСмСнты для выполнСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… дСйствий Π² элСмСнтах DOM.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ использованиС Π΄Π»ΠΈΠ½Ρ‹ JavaScript Π² Ρ†ΠΈΠΊΠ»Π΅ for. Π‘ΠΌ. Π”Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΈ подробности Π½ΠΈΠΆΠ΅:

Π˜ΡΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ½Π»Π°ΠΉΠ½

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

14

18

19

20

21

22

23

24

25

26

27

28

29

30

900

0003

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π΅Π» ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i устанавливаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства Π΄Π»ΠΈΠ½Ρ‹ массива Π² пСтля. Π—Π°Ρ‚Π΅ΠΌ массив USStates , содСрТащий Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ названия ΡˆΡ‚Π°Ρ‚ΠΎΠ² БША, отобраТаСтся Π² Π°Π±Π·Π°Ρ†Π΅ HTML с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° innerHTML.

Бвойство length Π²Π΅Ρ€Π½ΡƒΠ»ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 4 ΠΈ присвоило Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Ρƒ for. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ†ΠΈΠΊΠ» for Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i Π½Π΅ станСт мСньшС 4.

Π”Π»ΠΈΠ½Π° JavaScript для установки Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство length , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… сцСнариях для опрСдСлСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ.

ΠžΡ†Π΅Π½ΠΈΡ‚Π΅ этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

14

18

19

20

21

22

23

24

25

26

27

28

29

30

000

000 34

35

Β«P1Β»>

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π΄Π»ΠΈΠ½Π° массива установлСна ​​на 4.Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… элСмСнтов Π² массивС ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ, ΠΎΠ½ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ это ΠΊΠ°ΠΊ undefined . Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… элСмСнтов, Π° Π΄Π»ΠΈΠ½Π° установлСна ​​на 4, Ρ‚ΠΎ элСмСнты Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π΅Π·Π°Π½Ρ‹ ΠΈΠ»ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ.

Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… элСмСнтов, ΠΊΠΎΠ³Π΄Π° Π΄Π»ΠΈΠ½Π° установлСна ​​на 4, Ρ‚ΠΎ элСмСнты Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π΅Π·Π°Π½Ρ‹ ΠΈΠ»ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ.

Π‘ΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΈΠΆΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π°Π±ΠΎΡ€Π° Π΄Π»ΠΈΠ½Ρ‹ массива с большим количСством элСмСнтов

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ элСмСнты массива ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ пяти, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΌΡ‹ Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 3 элСмСнта массива.ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ массив с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for?

ΠžΡ†Π΅Π½ΠΈΡ‚Π΅ этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

14

18

19

20

21

22

23

24

25

26

27

28

29

30

000

000 34

35

Β«P1Β»>