阵列对象介绍
数组是任何语言的基础知识。数组被用来在一个集合名称下存储多个值。基本上,在网络应用中,我们将使用数组来存储从数据库中获取的列表对象、JSON值的列表和自定义条目,以及存储原始值。在类型脚本中,数组是对象。数组中的元素可以通过索引进行检索。
语法
var variableArrayName[:Data-type];
variableArrayName=[list of objects/elements]
or
var variableArrayName[:Array[Data-type]];
variableArrayName=[list of objects/elements]
数组变量的声明和初始化
我们可以用多种方式声明数组并初始化它们
var array1: string[] = [];
var array2: string[] = new Array();
var array3: string[] = Array();
var array4: Array = [];
var array5: Array = new Array();
var array6: Array = Array();
也可以用一条语句,声明和初始化数组
var array1: string[] = ['one','two','three'];
我们也可以声明一个没有数据类型的数组,它将被视为任何数据类型,数组将假定数组的数据类型可以根据数组的值来决定,我们将看到数组例子来检查数组的类型,数组的长度,从数组中检索一个元素。
var array1: string[] = ['one','two','three'];
console.log(typeof array1) //returns object
console.log(array1.length) //returns 3
console.log(array1[0]) // returns 'one'
console.log(array1[1]) // returns 'two'
console.log(array1[2]) // returns 'three'
console.log(array1[3]) // returns undefined
数组对象构造函数示例
我们也可以使用空数组或参数构造器创建数组对象。
var emps: string[] = new Array(2)
emps.push('emp1')
emps.push('emp2')
emps.push('emp3')
for(var i = 0;i<emps.length;i++) {
console.log(emps[i])
}
var newemps: string[] = new Array('test1','test2') // accepts parameters separted by comma in Array object Constrcutor
阵列破坏的基础知识
在最新的javascript中引入了析构功能,typecript也在对象和数组中实现。解构代码更易读,并减少了代码的大小 解构是将数组中的元素分开。下面的例子是复制两个变量而不使用第三个变量。
var var1 = 5, var2 = 8;
console.log(var1, var2); // returned 5,8
[var1, var2] = [var2, var1];
console.log(var1, var2); // returned 8,5
以同样的方式,我们可以在一个数组对象中实现它。
var arrays:number[] =[7, 4,5];
var [m,n] =arrays
console.log(m, n); // 7, 4
使用transpile生成的javascript是
var arrays = =[7, 4,5];
var x = arrays[0], y = arrays[1];
console.log(m, n); // 7, 4
数组休息解构
我们将看到用休止符对数组进行解构。上面的例子中有一个有三个元素的数组,分配了两个变量,从数组中复制了两个值到两个变量,第三个将被忽略
var arrays:number[] =[7, 4,5,12];
var [m,n,...q] =arrays
console.log(m, n); // 7, 4
console.log(q); // 5,12
我们将看到数组被忽略的解体
var arrays:number[] =[7, 4,5,12];
var [m,,...q] =arrays
console.log(m); // 7
console.log(q); // 5,12
使用一个空变量,用逗号隔开空变量
数组对象属性
length- 返回数组对象中元素的数量 数组对象
方法:数组对象有不同的方法来处理元素的数组。
reverse():倒转数组中元素的顺序。最后一个元素将是第一个元素,第一个元素将是最后一个元素。
Push():接收一个或多个元素作为参数,将该元素添加到数组的末尾,并返回数组的新长度。
pop():从一个数组的最后一个位置删除一个元素
concat():接收一个或多个元素作为参数,将该元素添加到一个原始数组中,并通过协程返回新数组。
slice():以开始和结束索引为参数,返回数组元素的一部分
toString():输出数组对象的字符串形式
shift():从一个索引为零的数组中删除第一个元素并返回第一个元素
unshift():多取一个元素,并将这些元素放在数组的起始位置,即零索引位置,返回全新的数组元素。
我们将在下一节的例子中看到数组的真实使用情况。
如何从一个数组中删除一个元素?
使用splice方法,我们可以从一个数组中移除元素。
splice(0,1) - 这些元素移除第一个元素并返回它,第一个参数表示从一个数组开始,即起始元素
,第二个参数表示要移除的元素的数量 splice(arrays. length,1) - 这些元素移除最后一个元素并返回最后一个元素。
如何声明一个多维数组?
这些用于数学矩阵对象的二层数组。数组包含元素,这些元素持有数组。多维数组可以按以下方式声明和初始化。使用索引,我们可以检索到元素
var dimensions:number[][] = [[11,12,13],[3,2,5]]
console.log(dimensions[0][0]) // returns 11
console.log(dimensions[0][1]) // returns 12
console.log(dimensions[0][2]) // returns 13
console.log(dimensions[1][0]) // returns 3
console.log(dimensions[1][1]) // returns 2
console.log(dimensions[1][2]) // returns 5
如何在typescript中把JSON转换为数组对象
在应用程序中,我们习惯于以JSON对象的形式从REST获取数据。从前端来看,我们需要操作JSON对象并在用户界面上显示它们。将JSON转换为数组是开发人员必须知道的高效编程的用例。
const json = {
"Employees": [
{ "id": "1", "name": "john" },
{ "id": "2", "name": "Franc" },
{ "id": "3", "name": "Kiran" },
]
}
const arraysItem = json.Employees.map(emp => emp.name);
console.log(arraysItem); //return array with three elements -john,Franc,Kiran
如何在数组中保存多种数据类型的值
通常情况下,数组持有相同数据类型的类似值。我们也可以持有多种数据类型,比如元组数组的例子
var types1:[number, string] = [11, "cloudhadoop"]
console.log(types1); //return index0 - 11, index1 - cloudhadoop
在typecript中对数组进行排序的例子
Arrays. sort(comparator)方法用于对数组中的元素进行排序
let list = ['11', '5', '9'];
console.log(list) // return - return 11,5,9
list.sort((p,q)=> p - q )
console.log(list); // Ascending Order - return 5,9,11
let data = [
{value:"testuser", key:11},
{value:"demo", key:31},
{value:"zoo", key:2},
];
根据键和值对JSON对象进行排序并转换为数组
// sort value in natural ascending order
data.sort((d1, d2) => {
if (d1.value > d2.value) return 1;
if (d1.value < d2.value) return -1;
return 0;
});
console.log(data);
output
{value: "demo", key: 31},
{value: "testuser", key: 11},
{value: "zoo", key: 2},
// sort key in natural ascending order
data.sort((d1, d2) => {
if (d1.key > d2.key) return 1;
if (d1.key < d2.key) return -1;
return 0;
});
{value: "zoo", key: 2},
{value: "testuser", key: 11},
{value: "demo", key: 31}
遍历/循环一个数组中的元素/对象
我们可以使用forEach或普通的for循环来迭代对象。在同样的逻辑中,我们可以在一个数组中使用一个循环对象
let list = ['11', '5', '9'];
list.forEach( (element) => {
console.log(element)
});
//returns 11,5,9