TypeScript中的数组操作

介绍

我们在编码时,总会用到数组/列表这种类型,用于在单个对象中存储多个内容。在 TypeScript 中,也已经内置了该类型,方便我们来使用。

操作

初始化

使用下面的代码即可创建并初始化一个数组类型的对象。其中,在构造函数中不输入参数即表示创建一个空数组。

let array : string[] = ["1", "2", "3"];

let numberArray : Array<number> = [1, 2, 3];

let anyArray : Array<any> = new Array<any>();

修改

let array:Array<number> = [1,2,3,4];
console.log(array)      // [1, 2, 3, 4]

array[0] = 20;          // 修改
console.log(array)      // [20, 2, 3, 4]

array[4] = 5;           // 赋值
console.log(array)      // [20, 2, 3, 4, 5]

array.push(6);          // 添加
console.log(array)      // [20, 2, 3, 4, 5, 6]

array.unshift(8, 0);    // 在第一个位置依次添加
console.log(array);     // [8, 0, 20, 2, 3, 4, 5, 6]

删除

let array:Array<number> = [1,2,3,4];
console.log(array)      // [1, 2, 3, 4]
let popValue = array.pop();     // 弹出
console.log(array)      // [1, 2, 3]
array.splice(0, 1);     // 删除元素(index, deleteCount)
console.log(array)      // [2, 3]
array.shift();          // 删除第一个元素
console.log(array);     // [3]

合并、断开数组

/**
  * Combines two or more arrays.
  * @param items Additional items to add to the end of array1.
  */
concat(...items: T[][]): T[];
/**
  * Combines two or more arrays.
  * @param items Additional items to add to the end of array1.
  */
concat(...items: (T | T[])[]): T[];
/**
 * 该方法返回指定起始位置的一个新的数组
 */
slice(start?: number, end?: number): T[];
let array: Array<number> = [1, 2, 3];
let array2: Array<number> = [4, 5, 6];
let arrayValue = 7;
array = array.concat( array2);
console.log(array)          // [1, 2, 3, 4, 5, 6]
array = array.concat(arrayValue);
console.log(array)          // [1, 2, 3, 4, 5, 6, 7]
let newArray = array.slice(2, 4);
console.log(newArray)      // [3, 4]

查找数组元素位置

/**
  * 返回查找到的第一个元素所在位置
  */
indexOf(searchElement: T, fromIndex?: number): number;
/**
  * 返回反序查找的第一个元素所在位置
  */
lastIndexOf(searchElement: T, fromIndex?: number): number;

let array: Array<string> = ["a","b","c","d","c","a"];
let indexC = array.indexOf("c");
console.log(indexC);            // 2
let lastA = array.lastIndexOf("a");
console.log(lastA);             // 5

连接数组元素

let array: Array<string> = ["a","b","c","d","c","a"];
let result = array.join();
console.log(result);            // a,b,c,d,c,a
result = array.join("+");
console.log(result);            // a+b+c+d+c+a
result = array.join("");
console.log(result);            // abcdca

排序、反序

let array:Array<number> = [3, 2, 1, 8, 7, 0, 4];
console.log(array);             // [3, 2, 1, 8, 7, 0, 4]
array.sort();
console.log(array);             // [0, 1, 2, 3, 4, 7, 8]
array.reverse();
console.log(array);             // [8, 7, 4, 3, 2, 1, 0]
发布时间:2021-05-06
其他阅读

新版本.Net关于Process.Start的问题

.Net 开发中,试用 Process.Start() 来启动一个新进程,当我们传入的是具体文件或者链接的时候,系统也会根据默认打开方式打开对应的进程。但是在新版本的 .Net 中,试用 Process.Start() 来打开文件或者链接的时候,会抛出 System.ComponentModel.Win32Exception 的错误,提示系统找不到指定的文件。

查看原文

C#应用在Windows实现自启动

本文将讲解 C# 应用在 Windows 系统中通过自动设置注册表的形式的形式实现开机自启动,这也是 Windows 系统推荐的做法。

查看原文

Nginx代理AspNetCore跨域问题

在前后端分离开发中,经常出现跨域的问题,本文是记录使用Nginx来反向代理AspNetCore应用时的跨域问题

查看原文

Js使用原型链对对象进行扩展

在C#的扩展方法中,我们了解到了一种不需要修改源对象定义即可为对象添加新的行为的方法,在JavaScript中,我们通过原型链也可以实现类似的效果,为对象添加新的行为。需要一定的Js原型链基础。

查看原文

vscode Material Design Theme

Material Design Theme 是由猪头少年(scung-cn)开发的一套基于 Material Design 设计语言的 Visual Studio Code 主题插件,可以在扩展市场上直接下载安装。

查看原文