Массив TypeScript
Объект массива хранит серию значений, используя одно имя переменной.
Массивы используются очень часто.
Предположим, у вас есть набор данных (например, названия сайтов), хранящийся в отдельных переменных, как показано ниже:
Если их 10, 100, этот подход становится очень непрактичным. В таких случаях мы можем использовать массив для решения этой задачи:
Это выглядит гораздо лаконичнее.
Синтаксис объявления массива в TypeScript выглядит следующим образом:
var array_name[:datatype]; //声明 array_name = [val1,val2,valn..] //初始化
Или сразу инициализировать его при объявлении:
var array_name[:datatype] = [val1,val2…valn]
Если массив объявлен без типа, считается, что он имеет тип `any`. Во время инициализации тип массива выводится на основе типа первого элемента.
Примеры
Создайте массив типа number:
var numlist:number[] = [2,4,6,8]
Вся структура массива выглядит следующим образом:

Первое значение индекса — 0, и мы можем обращаться к элементам массива по значению индекса:
TypeScript
Скомпилируйте приведённый выше код, чтобы получить следующий код JavaScript:
JavaScript
Вывод:
Google Example
В следующем примере мы инициализируем непосредственно при объявлении:
TypeScript
Скомпилируйте приведённый выше код, чтобы получить следующий код JavaScript:
JavaScript
Вывод:
1 2 3 4
Объект Array
Мы также можем создавать массивы с помощью объекта Array.
Конструктор объекта Array принимает следующие два значения:
- Числовое значение, представляющее размер массива.
- Инициализированный список массива, элементы которого разделены запятыми.
Пример
Укажите начальный размер массива:
TypeScript
Скомпилируйте приведённый выше код, чтобы получить следующий код JavaScript:
JavaScript
Вывод:
0 2 4 6
В следующем примере мы инициализируем элементы массива напрямую:
TypeScript
Скомпилируйте приведённый выше код, чтобы получить следующий код JavaScript:
JavaScript
Вывод:
Google Example Taobao Facebook
Деструктуризация массива
Мы также можем присвоить элементы массива переменным, как показано ниже:
TypeScript
Скомпилируйте приведённый выше код, чтобы получить следующий код JavaScript:
JavaScript
Вывод:
12 13
Итерация по массиву
Мы можем использовать оператор for для перебора и вывода каждого элемента массива:
TypeScript
Скомпилируйте приведённый выше код, чтобы получить следующий код JavaScript:
JavaScript
Вывод:
1001 1002 1003 1004
Многомерные массивы
Элементы массива могут быть другим массивом, образуя таким образом многомерный массив (Multi-dimensional Array).
Простейший многомерный массив — это двумерный массив, определяемый следующим образом:
var arr_name:datatype[][]=[ [val1,val2,val3],[v1,v2,v3] ]
Пример
Определите двумерный массив, где массив каждого измерения содержит три элемента.

TypeScript
Скомпилируйте приведённый выше код, чтобы получить следующий код JavaScript:
JavaScript
Вывод:
1 2 3 23 24 25
Использование массивов в функциях
Передача в качестве в
TypeScript
Скомпилируйте приведённый выше код, чтобы получить следующий код JavaScript:
JavaScript
Вывод:
Google Example Taobao Facebook
Как возвращаемое значение функции
TypeScript
Скомпилируйте приведённый выше код, чтобы получить следующий код JavaScript:
JavaScript
Вывод:
Google Example Taobao Facebook
Методы массива
В следующей таблице перечислены некоторые часто используемые методы массива:
| Нет. | Метод и описание | Пример |
|---|---|---|
| 1. | concat()
Объединяет два или более массивов и возвращает результат. |
var alpha = ["a", "b", "c"];
var numeric = [1, 2, 3];
var alphaNumeric = alpha.concat(numeric);
console.log("alphaNumeric : " + alphaNumeric ); // a,b,c,1,2,3
|
| 2. | every()
Проверяет, удовлетворяет ли каждый элемент массива условию. |
function isBigEnough(element, index, array) {
return (element >= 10);
}
var passed = [12, 5, 8, 130, 44].every(isBigEnough);
console.log("Test Value : " + passed ); // false
|
| 3. | filter()
Проверяет элементы и возвращает массив всех элементов, удовлетворяющих условию. |
function isBigEnough(element, index, array) {
return (element >= 10);
}
var passed = [12, 5, 8, 130, 44].filter(isBigEnough);
console.log("Test Value : " + passed ); // 12,130,44
|
| 4. | forEach()
Выполняет функцию обратного вызова один раз для каждого элемента массива. |
let num = [7, 8, 9];
num.forEach(function (value) {
console.log(value);
});
Скомпилировать в код JavaScript:
var num = [7, 8, 9];
num.forEach(function (value) {
console.log(value); // 7 8 9
});
|
| 5. | indexOf()
Ищет элемент в массиве и возвращает его позицию. Если элемент не найден, возвращает -1, указывая, что элемент не существует. |
var index = [12, 5, 8, 130, 44].indexOf(8);
console.log("index is : " + index ); // 2
|
| 6. | join()
Помещает все элементы массива в строку. |
var arr = new Array("Google","Example","Taobao");
var str = arr.join();
console.log("str : " + str ); // Google,Example,Taobao
var str = arr.join(", ");
console.log("str : " + str ); // Google, Example, Taobao
var str = arr.join(" + ");
console.log("str : " + str ); // Google + Example + Taobao
|
| 7. | lastIndexOf()
Возвращает последнюю позицию заданного строкового значения, выполняя поиск в обратном направлении от указанной позиции в строке. |
var index = [12, 5, 8, 130, 44].lastIndexOf(8);
console.log("index is : " + index ); // 2
|
| 8. | map()
Обрабатывает каждый элемент массива с помощью заданной функции и возвращает обработанный массив. |
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
console.log("roots is : " + roots ); // 1,2,3
|
| 9. | pop()
Удаляет последний элемент массива и возвращает удалённый элемент. |
var numbers = [1, 4, 9];
var element = numbers.pop();
console.log("element is : " + element ); // 9
var element = numbers.pop();
console.log("element is : " + element ); // 4
|
| 10. | push()
Добавляет один или несколько элементов в конец массива и возвращает новую длину. |
var numbers = new Array(1, 4, 9);
var length = numbers.push(10);
console.log("new numbers is : " + numbers ); // 1,4,9,10
length = numbers.push(20);
console.log("new numbers is : " + numbers ); // 1,4,9,10,20
|
| 11. | reduce()
Вычисляет элементы массива как одно значение (слева направо). |
var total = [0, 1, 2, 3].reduce(function(a, b){ return a + b; });
console.log("total is : " + total ); // 6
|
| 12. | reduceRight()
Вычисляет элементы массива как одно значение (справа налево). |
var total = [0, 1, 2, 3].reduceRight(function(a, b){ return a + b; });
console.log("total is : " + total ); // 6
|
| 13. | reverse()
Изменяет порядок элементов в массиве на обратный. |
var arr = [0, 1, 2, 3].reverse();
console.log("Reversed array is : " + arr ); // 3,2,1,0
|
| 14. | shift()
Удаляет и возвращает первый элемент массива. |
var arr = [10, 1, 2, 3].shift();
console.log("Shifted value is : " + arr ); // 10
|
| 15. | slice()
Выбирает часть массива и возвращает новый массив. |
var arr = ["orange", "mango", "banana", "sugar", "tea"];
console.log("arr.slice( 1, 2) : " + arr.slice( 1, 2) ); // mango
console.log("arr.slice( 1, 3) : " + arr.slice( 1, 3) ); // mango,banana
|
| 16. | some()
Проверяет, соответствует ли хотя бы один элемент массива заданному условию. |
function isBigEnough(element, index, array) {
return (element >= 10);
}
var retval = [2, 5, 8, 1, 4].some(isBigEnough);
console.log("Returned value is : " + retval ); // false
var retval = [12, 5, 8, 1, 4].some(isBigEnough);
console.log("Returned value is : " + retval ); // true
|
| 17. | sort()
Сортирует элементы массива. |
var arr = new Array("orange", "mango", "banana", "sugar");
var sorted = arr.sort();
console.log("Returned string is : " + sorted ); // banana,mango,orange,sugar
|
| 18. | splice()
Добавляет или удаляет элементы из массива. |
var arr = ["orange", "mango", "banana", "sugar", "tea"];
var removed = arr.splice(2, 0, "water");
console.log("After adding 1: " + arr ); // orange,mango,water,banana,sugar,tea
console.log("removed is: " + removed);
removed = arr.splice(3, 1);
console.log("After removing 1: " + arr ); // orange,mango,water,sugar,tea
console.log("removed is: " + removed); // banana
|
| 19. | toString()
Преобразует массив в строку и возвращает результат. |
var arr = new Array("orange", "mango", "banana", "sugar");
var str = arr.toString();
console.log("Returned string is : " + str ); // orange,mango,banana,sugar
|
| 20. | unshift()
Добавляет один или несколько элементов в начало массива и возвращает новую длину. |
var arr = new Array("orange", "mango", "banana", "sugar");
var length = arr.unshift("water");
console.log("Returned array is : " + arr ); // water,orange,mango,banana,sugar
console.log("Length of the array is : " + length ); // 5
|