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)
})
相关推荐
To_OC15 小时前
面试被问了三回三栏布局,这次我终于把 BFC 那层窗户纸捅破了
前端·css·面试
To_OC15 小时前
啃完 TS 工具类型我发现:Pick 和 Omit 原来就是一层窗户纸
前端·面试·typescript
风月说与山鬼17 小时前
三、大括号语法
前端·react.js
kyriewen17 小时前
我把最常踩的8个CORS跨域报错整理了一遍——第8个去年还不存在
前端·javascript
Csvn18 小时前
🕰️ 闭包 + setTimeout 的 5 个经典陷阱:为什么定时器看到的永远不是最新的值?
前端
lilian23318 小时前
Harmony os 技术实战|拼豆制图27:用单字符编码承载 50 张 70×70 图纸
前端·数据库·华为·harmonyos
JaydenAI18 小时前
[TypeScript学习笔记-07]根据现有类型创建新类型的N种方式
typescript
CarIise18 小时前
CSS选择器与样式关联
前端·css·tensorflow
里欧跑得慢20 小时前
CSS 模块化架构的演进:BEM、CSS Modules 到 CSS-in-JS 的反思
前端·css·flutter·web·css-in-js