From 841aae260382e2bf5ebb44d765d8c7301d27caab Mon Sep 17 00:00:00 2001 From: Alexey Istomin Date: Sat, 20 Mar 2021 18:37:44 +0300 Subject: Restore "ё" letter in Russian translation (#239) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs(ru): restore ё letter * docs(ru): resolve conflicts * refactor(idea): remove ide folder --- .../guide/indexed_collections/index.html | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'files/ru/web/javascript/guide/indexed_collections') diff --git a/files/ru/web/javascript/guide/indexed_collections/index.html b/files/ru/web/javascript/guide/indexed_collections/index.html index ed49aa33bd..68a5001fdb 100644 --- a/files/ru/web/javascript/guide/indexed_collections/index.html +++ b/files/ru/web/javascript/guide/indexed_collections/index.html @@ -11,7 +11,7 @@ translation_of: Web/JavaScript/Guide/Indexed_collections

Массив представляется собой упорядоченный набор значений, к которому вы ссылаетесь по имени и индексу. Допустим, у вас есть массив с именем emp, содержащий имена сотрудников и упорядоченный по номеру сотрудников. Следовательно, emp[1] будет представлять собой имя сотрудника номер один, emp[2] -- имя сотрудника номер два, и т.д.

-

Язык JavaScript не содержит явного типа данных "массив". Тем не менее, возможно использовать предопределенный объект Array и его методы для работы с массивами в создаваемых приложениях. Объект Array содержит методы для работы с массивами самыми различными способами, например, есть методы для объединения,  переворачивания и сортировки. Объект содержит свойство для определения длины массива, а также свойства для работы с регулярными выражениями.

+

Язык JavaScript не содержит явного типа данных "массив". Тем не менее, возможно использовать предопределённый объект Array и его методы для работы с массивами в создаваемых приложениях. Объект Array содержит методы для работы с массивами самыми различными способами, например, есть методы для объединения,  переворачивания и сортировки. Объект содержит свойство для определения длины массива, а также свойства для работы с регулярными выражениями.

Создание массива

@@ -37,7 +37,7 @@ arr.length = arrayLength;
-

Замечание: в примере выше arrayLength должно иметь числовой тип Number. В противном случае будет создан массив с единственным элементом (указанное значение). Вызванная функция arr.length вернет значение arrayLength, но на самом деле массив будет содержать пустые элементы (undefined). Использование цикла {{jsxref("Statements/for...in","for...in")}} для обработки значений массива не вернет ни одного элемента.

+

Замечание: в примере выше arrayLength должно иметь числовой тип Number. В противном случае будет создан массив с единственным элементом (указанное значение). Вызванная функция arr.length вернёт значение arrayLength, но на самом деле массив будет содержать пустые элементы (undefined). Использование цикла {{jsxref("Statements/for...in","for...in")}} для обработки значений массива не вернёт ни одного элемента.

Массивы могут быть присвоены свойству нового или уже существующего объекта, как показано ниже:

@@ -114,7 +114,7 @@ arr["length"]; // Вернёт число 3, так как это свойст

Понимание length

-

На уровне реализации, массивы в JavaScript хранят свои элементы как стандартные свойства объекта, используя индекс в качестве имени свойства. Специальное свойство length всегда возвращает индекс последнего элемента плюс один (в примере ниже, элемент 'Dusty' размещается под индексом 30, по этому cats.length возвращает 30 + 1). Особо следует запомнить, что в JavaScript массивы индексируются с нуля: отсчет ведется с 0, а не с 1. Из этого и следует, что свойство length всегда на единицу больше, чем наибольший индекс хранящийся в массиве:

+

На уровне реализации, массивы в JavaScript хранят свои элементы как стандартные свойства объекта, используя индекс в качестве имени свойства. Специальное свойство length всегда возвращает индекс последнего элемента плюс один (в примере ниже, элемент 'Dusty' размещается под индексом 30, по этому cats.length возвращает 30 + 1). Особо следует запомнить, что в JavaScript массивы индексируются с нуля: отсчёт ведётся с 0, а не с 1. Из этого и следует, что свойство length всегда на единицу больше, чем наибольший индекс хранящийся в массиве:

var cats = [];
 cats[30] = ['Dusty'];
@@ -127,7 +127,7 @@ console.log(cats.length); // 31
 console.log(cats.length); // 3
 
 cats.length = 2;
-console.log(cats); // выводит в консоль "Dusty,Misty" - элемент "Twiggy" был удален
+console.log(cats); // выводит в консоль "Dusty,Misty" - элемент "Twiggy" был удалён
 
 cats.length = 0;
 console.log(cats); // выводит пустую строку; массив cats пуст
@@ -138,7 +138,7 @@ console.log(cats); // выводит [undefined, undefined, undefined]
 
 

Перебор содержимого массивов

-

Очень распространенная задача - это перебор всех элементов массива и обработка каждого элемента некоторой операцией. Вот наипростейший способ сделать это:

+

Очень распространённая задача - это перебор всех элементов массива и обработка каждого элемента некоторой операцией. Вот наипростейший способ сделать это:

var colors = ['red', 'green', 'blue'];
 for (var i = 0; i < colors.length; i++) {
@@ -146,7 +146,7 @@ for (var i = 0; i < colors.length; i++) {
 }
 
-

Если вам заранее известно, что ни один элемент массива не будет расценен как false при приведении к boolean — например, каждый элемент массива является DOM узлом, тогда вы можете блеснуть чуть более эффективным оборотом:

+

Если вам заранее известно, что ни один элемент массива не будет расценён как false при приведении к boolean — например, каждый элемент массива является DOM узлом, тогда вы можете блеснуть чуть более эффективным оборотом:

var divs = document.getElementsByTagName('div');
 for (var i = 0, div; div = divs[i]; i++) {
@@ -275,7 +275,7 @@ myArray.sort();
 // массив отсортирован myArray = [ "Fire", "Rain", "Wind" ]
 
-

Метод sort() может принимать в качестве аргумента callback-функцию, которая определяет каким образом сравнивать элементы массива при сортировке. Функция сравнивает два значения, и возвращает одно из трех значений (список вариантов значений смотрите после примера):

+

Метод sort() может принимать в качестве аргумента callback-функцию, которая определяет каким образом сравнивать элементы массива при сортировке. Функция сравнивает два значения, и возвращает одно из трёх значений (список вариантов значений смотрите после примера):

Пример. Следующий код сортирует массив по последнему символу в строке:

@@ -297,16 +297,16 @@ myArray.sort(sortFn);
var a = ['a', 'b', 'a', 'b', 'a'];
 console.log(a.indexOf('b')); // выводит 1
-// Попробуем еще раз, начиная с индекса последнего совпадения
+// Попробуем ещё раз, начиная с индекса последнего совпадения
 console.log(a.indexOf('b', 2)); // выводит 3
 console.log(a.indexOf('z')); // выводит -1, потому что 'z' не найдено
 
-

{{jsxref("Array.lastIndexOf", "lastIndexOf(searchElement[, fromIndex])")}} тоже самое, что и indexOf, но поиск ведется в обратном порядке, с конца массива.

+

{{jsxref("Array.lastIndexOf", "lastIndexOf(searchElement[, fromIndex])")}} тоже самое, что и indexOf, но поиск ведётся в обратном порядке, с конца массива.

var a = ['a', 'b', 'c', 'd', 'a', 'b'];
 console.log(a.lastIndexOf('b')); // выводит 5
-// Попробуем еще раз, начиная с индекса, предшествующего индексу последнего совпадения
+// Попробуем ещё раз, начиная с индекса, предшествующего индексу последнего совпадения
 console.log(a.lastIndexOf('b', 4)); // выводит 1
 console.log(a.lastIndexOf('z')); // выводит -1
 
@@ -343,7 +343,7 @@ var a2 = [1, '2', 3]; console.log(a2.every(isNumber)); // выводит false
-

{{jsxref("Array.some", "some(callback[, thisObject])")}} возвращает true, если вызов callback-функции вернет true хотя бы для одного элемента.

+

{{jsxref("Array.some", "some(callback[, thisObject])")}} возвращает true, если вызов callback-функции вернёт true хотя бы для одного элемента.

function isNumber(value){
   return typeof value == 'number';
@@ -356,7 +356,7 @@ var a3 = ['1', '2', '3'];
 console.log(a3.some(isNumber)); // выводит false
 
-

Те из методов выше, что принимают callback-функцию в качестве аргумента, известны как методы итерации (iterative methods), потому что определенным образом проходятся по всем элементам массива. Каждый из таких методов принимает второй, опциональный элемент, называемый thisObject. Если этот аргумент присутствует, то его значение присваивается ключевому слову this в теле callback-функции. Иначе, как и в любом другом случае вызова функции вне явного контекста, this будет ссылаться на глобальный объект ({{domxref("window")}}).

+

Те из методов выше, что принимают callback-функцию в качестве аргумента, известны как методы итерации (iterative methods), потому что определённым образом проходятся по всем элементам массива. Каждый из таких методов принимает второй, опциональный элемент, называемый thisObject. Если этот аргумент присутствует, то его значение присваивается ключевому слову this в теле callback-функции. Иначе, как и в любом другом случае вызова функции вне явного контекста, this будет ссылаться на глобальный объект ({{domxref("window")}}).

В действительности callback-функция вызывается с тремя аргументами. Первый аргумент - текущий элемент массива, второй - индекс этого элемента, и третий - ссылка на сам массив. Однако, в JavaScript, функции игнорируют любые аргументы, которые не перечислены в списке аргументов. Таким образом, нет ничего страшного в использовании функции с одним аргументом, такой как alert.

@@ -367,7 +367,7 @@ var total = a.reduce(function(first, second, index) { return first + second; }, console.log(total) // выводит 60 -

{{jsxref("Array.reduceRight", "reduceRight(callback[, initalvalue])")}} работает так же как и reduce(), но порядок обхода ведется от конца к началу.

+

{{jsxref("Array.reduceRight", "reduceRight(callback[, initalvalue])")}} работает так же как и reduce(), но порядок обхода ведётся от конца к началу.

Методы reduce и reduceRight являются наименее очевидными методами объекта Array. Они должны использоваться в алгоритмах, которые рекурсивно совмещают два элемента массива, для сведения всей последовательности к одному значению.

@@ -375,7 +375,7 @@ console.log(total) // выводит 60

Массивы могут быть вложенными, то есть массив может содержать массивы в элементах. Используя эту возможность массивов JavaScript, можно построить многомерные массивы.

-

Следующий код создает двумерный массив:

+

Следующий код создаёт двумерный массив:

var a = new Array(4);
 for (i = 0; i < 4; i++) {
@@ -386,7 +386,7 @@ for (i = 0; i < 4; i++) {
 }
 
-

В этом примере создается массив со следующим содержимым:

+

В этом примере создаётся массив со следующим содержимым:

Ряд 0: [0,0] [0,1] [0,2] [0,3]
 Ряд 1: [1,0] [1,1] [1,2] [1,3]
@@ -428,11 +428,11 @@ for (i = 0; i < 4; i++) {
 
 

ArrayBuffer

-

Объект {{jsxref("ArrayBuffer")}} это стандартный набор бинарных данных с фиксированной длиной. Вы не можете манипулировать содержимым ArrayBuffer напрямую. Вместо этого необходимо создать типизированное представление {{jsxref("DataView")}}, которое будет отображать буфер в определенном формате, и даст доступ на запись и чтение его содержимого.

+

Объект {{jsxref("ArrayBuffer")}} это стандартный набор бинарных данных с фиксированной длиной. Вы не можете манипулировать содержимым ArrayBuffer напрямую. Вместо этого необходимо создать типизированное представление {{jsxref("DataView")}}, которое будет отображать буфер в определённом формате, и даст доступ на запись и чтение его содержимого.

Типизированные представления

-

Название типизированного представления массива говорит само за себя. Оно представляет массив в распространенных числовых форматах, таких как  Int8, Uint32, Float64 и так далее. Среди прочих существует специальное представление Uint8ClampedArray. Оно ограничивает значения интервалом от 0 до 255. Это полезно, например, при Обработке данных изображения в Canvas.

+

Название типизированного представления массива говорит само за себя. Оно представляет массив в распространённых числовых форматах, таких как  Int8, Uint32, Float64 и так далее. Среди прочих существует специальное представление Uint8ClampedArray. Оно ограничивает значения интервалом от 0 до 255. Это полезно, например, при Обработке данных изображения в Canvas.

{{page("en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray", "TypedArray_objects")}}

-- cgit v1.2.3-54-g00ecf