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)
})
相关推荐
Csvn8 小时前
WASM
前端
修己xj9 小时前
我用 AI 给自己写了一个 Markdown 编辑器,然后把它开源了
前端
FRing0310 小时前
vue2干货总结2(v-bind、v-for、v-model、指令修饰符、v-bind操作class和style)
开发语言·前端·vue.js·vue2
幸运小猿10 小时前
模拟慢上传-处理超时重试image 丢失线上问题
前端·javascript·html
moshuying11 小时前
网购能买Token了!
前端
h_654321012 小时前
echarts实现柱状图加一条横线
前端·echarts
风骏时光牛马12 小时前
生成一个后端标题,只需要一个标题,不需要其他的任何文本。
前端
子非鱼@Itfuture12 小时前
关于前后端联调中登录状态/登录信息失效?
java·前端
郭小李12 小时前
openFeign入门
java·开发语言·前端
馒头不想说话12 小时前
AI当运营,帮你省人力
前端