-
Notifications
You must be signed in to change notification settings - Fork 639
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Добавляет нюанс про разреженный массив #5559
base: main
Are you sure you want to change the base?
Conversation
Превью контента из bbe2a91 опубликовано. |
@@ -171,3 +172,22 @@ console.log(episodesPerSeasons.includes(8)) | |||
console.log(episodesPerSeasons.includes(6)) | |||
// true | |||
``` | |||
|
|||
Интересно, что если в массиве будут индексы с пропусками (например, в результате некорректной работы с методами массивов или некорректной вставки новых элементов), то можно получить разреженный массив. Предположим, у нас есть набор элементов: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
если в массиве будут индексы с пропусками (например, в результате некорректной работы с методами массивов или некорректной вставки новых элементов)
Мне кажется, наличие пропусков (empty slots) и сам разряженный массив (sparse array), это вовсе не результат некорректной работы.
Самый простой пример:
const array = Array(10)
console.log(array)
// [ <10 empty items> ]
Поэтому, я бы предложил не использовать "некорректность".
Наверное, тут бы очень подошёл демо-пример с демонстрацией изменение размера массива.
// Зрители, которые заняли три места в ряду. Индексы их мест: 0,1, 2
const audience = [🐸, 🐶, 🐱 ]
// опоздавший зритель занял место в темноте и не попорядку!
audience[5] = 🐌
// места с индексами 3 и 4 всё ещё свободны, и это логично!
console.log(audience)
.// Array(6) [ "🐸", "🐶", "🐱", <2 empty slots>, "🐌" ]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
мб это контекста зависит, ожидают, что будут пропуски или нет
но ты прав, надо другую формулировку. подумаю как лучше
const arr = ['d', 'o', 'k', 'a'] | ||
``` | ||
|
||
Добавив к этому массиву ещё один элемент, чтобы его индекс был больше длины массива, мы получим массив с дырой, имеющей значение `undefined`: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Добавив к этому массиву ещё один элемент, чтобы его индекс был больше длины массива, мы получим массив с дырой, имеющей значение `undefined`: | |
Добавив к этому массиву ещё один элемент, чтобы его индекс был больше длины массива, получим массив с незаполненным элементом (empty slot). Если обратиться к незаполненному элементу, получим `undefined`: |
console.log(arr) // выведет ['d', 'o', 'k', 'a', , '!'] | ||
``` | ||
|
||
Длина массива будет включать в себя не только элементы, но и все пустые места, то есть в нашем случае не 5 элементов, а 6: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Длина массива будет включать в себя не только элементы, но и все пустые места, то есть в нашем случае не 5 элементов, а 6: | |
Длина массива будет включать в себя не только элементы имеющие значения, но и все незаполненные элементы (empty slots), то есть в нашем случае не 5 элементов, а 6: |
Длина массива будет включать в себя не только элементы, но и все пустые места, то есть в нашем случае не 5 элементов, а 6: | ||
|
||
```js | ||
console.log(arr.length) // выведет 6 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
console.log(arr.length) // выведет 6 | |
// Выведет 6 | |
console.log(arr.length) |
|
||
```js | ||
arr[5] = '!' | ||
console.log(arr) // выведет ['d', 'o', 'k', 'a', , '!'] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
console.log(arr) // выведет ['d', 'o', 'k', 'a', , '!'] | |
// Выведет ['d', 'o', 'k', 'a', , '!'] | |
console.log(arr) |
@@ -171,3 +172,22 @@ console.log(episodesPerSeasons.includes(8)) | |||
console.log(episodesPerSeasons.includes(6)) | |||
// true | |||
``` | |||
|
|||
Интересно, что если в массиве будут индексы с пропусками (например, в результате некорректной работы с методами массивов или некорректной вставки новых элементов), то можно получить разреженный массив. Предположим, у нас есть набор элементов: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Интересно, что если в массиве будут индексы с пропусками (например, в результате некорректной работы с методами массивов или некорректной вставки новых элементов), то можно получить разреженный массив. Предположим, у нас есть набор элементов: | |
Если в массиве будут индексы с пропусками, можно получить разрежённый массив. Например, индексы с пропусками в результате некорректной работы с методами массивов или неправильной вставки новых элементов. Предположим, у нас есть набор элементов: |
Интересно, что если в массиве будут индексы с пропусками (например, в результате некорректной работы с методами массивов или некорректной вставки новых элементов), то можно получить разреженный массив. Предположим, у нас есть набор элементов: | |
Интересно, что если в массиве будут индексы с пропусками (например, в результате некорректной работы с методами массивов или некорректной вставки новых элементов), то можно получить разреженный массив. Предположим, у нас есть набор элементов: |
Описание
Closes #5558
Чек-лист
/css/color/
,/tools/json/
,/tools/gulp/#kak-ponyat
)images/example.png
,demos/example/
,../demos/example/
)