TypeScript 数组Array操作

本文详细介绍了TypeScript中数组的基本操作,包括声明、初始化、元素的添加与删除、排序及查找等常用方法,并通过示例代码帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组是一个很简单的数据结构,但是每次使用TypeScript的数组的时候又总是忘记怎么用了,干脆直接弄成干货,忘了过来看看。

一、数组的声明

let array1:Array<number>;
let array2:number[];

二、数组初始化

let array1:Array<number> = new Array<number>();
let array2:number[] = [123];

三、数组元素赋值、添加、更改

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

七、连接数组元素

/**
 * 连接数组
 */
join(separator?: string): string;
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]

九、遍历请看这里 上一篇

### TypeScript 数组分组方法 在TypeScript中,可以利用其强大的类型系统以及JavaScript中的高阶函数来实现数组分组功能。一种常见的方式是通过`reduce()`方法遍历数组并根据特定条件创建对象或者嵌套数组结构[^1]。 下面是一个简单的例子,展示如何按照某个属性对对象数组进行分组: ```typescript interface Item { category: string; value: number; } const items: Item[] = [ {category: 'fruit', value: 1}, {category: 'vegetable', value: 2}, {category: 'fruit', value: 3} ]; function groupBy<T>(list: T[], keyGetter: (item: T) => any): Map<any, Array<T>> { const map = new Map(); list.forEach((item) => { const key = keyGetter(item); const collection = map.get(key); if (!collection) { map.set(key, [item]); } else { collection.push(item); } }); return map; } // 使用自定义的groupBy函数按'category'字段对items列表进行分组 const groupedItems = groupBy(items, item => item.category); console.log(groupedItems); // 输出Map {'fruit' => [{...}, {...}], 'vegetable' => [{...}]} ``` 此代码片段展示了如何定义一个通用类型的`groupBy`函数,该函数接受两个参数:一个是待处理的数据集合;另一个是用来获取用于分组键值的选择器函数。最后返回的是一个映射表(Map),其中包含了基于给定标准划分后的子集。 对于更复杂的需求,则可能涉及到第三方库的支持,比如Lodash这样的工具类库提供了更加丰富的API来进行各种形式的数据操作,包括但不限于数组分组等功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值