TypeScript数组和对象的操作

TypeScript数组和对象的操作

一、数组的声明

typescript 复制代码
let arr1: Array<number>;
let arr2: number[];

二、数组初始化

typescript 复制代码
let arr1: Array<number> = new Array<number>();
let arr2: number[] = [1,2,3];

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

typescript 复制代码
// 基本变量不需要声明后可以不需要初始化;
let a:number;
a = 1;
console.log(a); // 1

let b: string;
b = "string";
console.log(b); // string

// 数组和对象使用之前必须要初始化;
let arr1: Array<number>;
// arr1[0] = 100; // Variable 'arr1' is used before being assigned.
//arr1.push(100);  // 就算使用push来添加也不行
//console.log(arr1)

let arr2: Array<number> = new Array<number>();
arr2[0] = 1;  // 赋值和修改格式一样
arr2.push(2);	// 最后面增加,可以多个值
arr2.unshift(3) // 最前面增加,可以多个值
console.log(arr2)  // [3, 1, 2, 3] 

四、删除

typescript 复制代码
let arr: Array<number> = [1,2,3,4,5]
arr.pop();
console.log(arr);   // [1, 2, 3, 4] 

arr.shift();
console.log(arr);   // [2, 3, 4] 

arr.splice(0,2);     // 删除元素(index, deleteCount)
console.log(arr);    // [4] 

五、合并、断开数组

typescript 复制代码
let arr: Array<number> = [1,2,3]
let arr2: Array<number> = [4,5,6]
let arrValue = 7

arr = arr.concat(arr2)

console.log(arr) //[1, 2, 3, 4, 5, 6] 

arr = arr.concat(arrValue)

console.log(arr) //[1, 2, 3, 4, 5, 6, 7] 

let newArray = arr.slice(1, 3)
console.log(newArray)  // [2,3]

六、查找数组元素

typescript 复制代码
let arr: Array<string> = ["a", "b", "c", "d"]

let index = arr.indexOf("c") //返回查找到的第一个元素所在位置
console.log(index) // 2

index = arr.lastIndexOf("d") //返回反序查找的第一个元素所在位置
console.log(index) // 3

// 对象
let persons = [
    { id: 1, name: '张三', age: 23 },
    { id: 2, name: '李四', age: 11 },
    { id: 3, name: '王五', age: 16 }
];


// persons.forEach((value, index, array) => {
//     console.log(value, index)
// })

// find() 方法返回相应的对象, 从未返回真值,则 find() 方法返回 undefined
const person = persons.find(obj => {
    return obj.id === 2;
})

console.log(person); // {  "id": 2,  "name": "李四",  "age": 11} 


// filter, 也可以反向选择
const p1 = persons.filter(obj => {
    // return obj.name != "李四"
    return obj.id == 2;
})

console.log(p1); // {  "id": 2,  "name": "李四",  "age": 11} 

const p2 = persons.filter(obj => {
    return obj.id != 2;
})

console.log(p2); 
/**
[{
  "id": 1,
  "name": "张三",
  "age": 23
}, {
  "id": 3,
  "name": "王五",
  "age": 16
}]
 */

// 查找元素的index
const c1 = persons.findIndex(person => {
    return person.name == "李四"
})

console.log(c1); // 1
console.log(persons[c1]) //{  "id": 2,  "name": "李四",  "age": 11} 

七、连接数组元素

typescript 复制代码
let arr: Array<string> = ["a", "b", "c", "d"]

let joinString = arr.join(",") //返回查找到的第一个元素所在位置
console.log(joinString) // "a,b,c,d" 

joinString = arr.join("-") //返回反序查找的第一个元素所在位置
console.log(joinString) // "a-b-c-d" 

八、排序、反序数组

typescript 复制代码
let arr: Array<number> = [1,4,3,5,2]

arr.sort()
console.log(arr) // [1, 2, 3, 4, 5] 

arr.reverse() //返回反序查找的第一个元素所在位置
console.log(arr) // [5, 4, 3, 2, 1] 

九、遍历数组,对象

  • 定义数组
typescript 复制代码
let persons = [
    { id: 1, name: '张三', age: 23 },
    { id: 2, name: '李四', age: 11 },
    { id: 3, name: '王五', age: 16 }
];
  1. for 循环
typescript 复制代码
for ( let index = 0; index < persons.length; ++index) {
    console.log(persons[index]);
}
  1. for...in 循环
typescript 复制代码
for (let index in persons) {
  console.log(persons[index])  
}
  1. for...of循环
typescript 复制代码
for (let person of persons) {
  console.log(person)  
}
  1. forEach循环
typescript 复制代码
persons.forEach((value, index, array) => {
    console.log(value, index)
})
相关推荐
我要让全世界知道我很低调6 分钟前
记一次 Vite 下的白屏优化
前端·css
threelab6 分钟前
three案例 Three.js波纹效果演示
开发语言·javascript·ecmascript
1undefined28 分钟前
element中的Table改造成虚拟列表,并封装成hooks
前端·javascript·vue.js
蓝倾43 分钟前
淘宝批量获取商品SKU实战案例
前端·后端·api
comelong1 小时前
Docker容器启动postgres端口映射失败问题
前端
花海如潮淹1 小时前
硬件产品研发管理工具实战指南
前端·python
用户3802258598241 小时前
vue3源码解析:依赖收集
前端·vue.js
用户7579419949701 小时前
基于JavaScript的简易Git
javascript
WaiterL1 小时前
一文读懂 MCP 与 Agent
前端·人工智能·cursor
gzzeason1 小时前
使用Vite创建React初始化项目
前端·javascript·react.js