TypeScript数组和对象的操作

ts文件运行环境一、数组的声明二、数组初始化三、数组元素赋值、添加、更改四、删除五、合并、断开数组六、查找数组元素七、连接数组元素八、排序、反序数组九、遍历数组,对象十、删除数组,对象中符合条件的数据

ts文件运行环境

安装 TypeScript

npm install -g typescript

安装 ts-node

npm install -g ts-node

运行ts文件,cmd下

ts-node demo.ts

一、数组的声明

let arr1: Array;

let arr2: number[];

二、数组初始化

let arr1: Array = new Array();

let arr2: number[] = [1,2,3];

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

// 基本变量不需要声明后可以不需要初始化;

let a:number;

a = 1;

console.log(a); // 1

let b: string;

b = "string";

console.log(b); // string

// 数组和对象使用之前必须要初始化;

let arr1: Array;

// arr1[0] = 100; // Variable 'arr1' is used before being assigned.

//arr1.push(100); // 就算使用push来添加也不行

//console.log(arr1)

let arr2: Array = new Array();

arr2[0] = 1; // 赋值和修改格式一样

arr2.push(2); // 最后面增加,可以多个值

arr2.unshift(3) // 最前面增加,可以多个值

console.log(arr2) // [3, 1, 2, 3]

四、删除

let arr: Array = [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]

五、合并、断开数组

let arr: Array = [1,2,3]

let arr2: Array = [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]

六、查找数组元素

let arr: Array = ["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}

七、连接数组元素

let arr: Array = ["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"

八、排序、反序数组

let arr: Array = [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]

九、遍历数组,对象

定义数组

let persons = [

{ id: 1, name: '张三', age: 23 },

{ id: 2, name: '李四', age: 11 },

{ id: 3, name: '王五', age: 16 }

];

for 循环

for ( let index = 0; index < persons.length; ++index) {

console.log(persons[index]);

}

for…in 循环

for (let index in persons) {

console.log(persons[index])

}

for…of循环

for (let person of persons) {

console.log(person)

}

forEach循环

persons.forEach((value, index, array) => {

console.log(value, index)

})

十、删除数组,对象中符合条件的数据

目前要上面的遍历方法都有问题,因为 删除后,索引就变了 目前能想到和实现的办法是通过while 来实现

let persons = [

{ id: 1, name: '张三', age: 23 },

{ id: 2, name: '李四', age: 11 },

{ id: 3, name: '王五', age: 16 },

{ id: 4, name: '王xx', age: 16 }

];

let i = persons.length;

while (i--) {

if (persons[i].id == 1 || persons[i].id == 3) {

persons.splice(i, 1);

}

}

console.log(persons);

/**

[{

"id": 2,

"name": "李四",

"age": 11

}, {

"id": 4,

"name": "王xx",

"age": 16

}]

*/

删除在另一个数组中包含的元素: 删除在另一个数组中不包含的元素:

deleteNotInList(currList: any[], otherList: any[]) {

let i = currList.length

while (i--) {

if (!otherList.some((x) => {

return currList[i].scanItemName === x.scanItemName

})) currList.splice(i, 1)

}

}

好文推荐

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: