用实例学习Typescript Arrays教程

221 阅读2分钟

阵列对象介绍

数组是任何语言的基础知识。数组被用来在一个集合名称下存储多个值。基本上,在网络应用中,我们将使用数组来存储从数据库中获取的列表对象、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