TS —数组的基础应用

接触ts没多久,一起学习,有问题可以给我指出,谢谢!

用示例代码更清楚的了解噢

示例代码的注释都已标明了各个功能作用的实现方法和用法

(1)数组的增删改查

var numbers = [2,4,6,7,8]
//在数组指定位置中增添或删除元素使用splice()
//从numbers[1]开始删除两个元素
numbers.splice(1,2)
console.log("splice删除 " + numbers)

//从numbers[0]开始删除0个元素,并添加0,1
numbers.splice(0,0,0,1)
console.log("splice删除且增添 " + numbers)

//在数组开头,即numbers[0]的位置添加1个或多个元素使用unshift(),返回新的长度
var length = numbers.unshift(-2,-1)
console.log('unshift长度 ' + length)
console.log("unshift " + numbers)

//在数组末尾,添加一个或多个元素使用push(),返回新的长度
var length2 = numbers.push(9,10)
console.log('push长度 ' + length2)
console.log("push " + numbers)

//删除并返回数组的第一个元素,即numbers[0],使用shift()
var shift = numbers.shift()
console.log('数组第一个元素 ' + shift)
console.log("shift " + numbers)

//删除并返回数组的最后一个元素,使用pop()
var pop = numbers.pop()
console.log('数组最后一个元素 ' + pop)
console.log("pop " + numbers)

//修改元素,可以通过下标访问数组元素,直接进行修改,也可使用splice()在数组指定位置删除元素后增添元素
numbers[4] = 3
numbers.splice(5,2,4,5)
console.log(numbers)

//查找元素,使用indexOf方法查找数组中某个元素的下标。若数组中没有该元素,则返回 -1
var index = numbers.indexOf(1)
var index2 = numbers.indexOf(999)
console.log('index ' + index)
console.log('index2 ' + index2)

(2)数组的排序
 

//数组的排序使用sort(),该方法可以接受一个函数作为参数,用于定义排序规则,函数返回值为数字类型
var arr = [5,3,1,2,4]
//升序排列
var ascending = arr.sort((a, b) => a - b)
console.log(ascending)
//降序排列
var arr1 = [5,3,1,2,4]
var descending = arr1.sort((a, b) => b - a)
console.log(descending)

//若要对其他类型进行排序,则需要将比较结果转化为数字
//可以使用localeCompare()来比较字符串,将返回一个数字
//array.sort((a, b) => a.localeCompare(b))
var array: string[] = ['AB', 'Z', 'A', 'AC']
var sortedArray: string[] = array.sort((a, b) => {
    if (a > b) {
        return 1
    }
    if (a < b) {
        return -1
    }
    return 0
})
console.log(sortedArray)

//对于对象,可以根据属性进行排序
//可以使用lambda,更简洁,从而不关心相等的字符串
//objectArray.sort((a,b) => a.age - b.age)
var objectArray: { age: number; }[] = [{ age: 10}, { age: 1 }, {age: 5}];
var sortedArray1: { age: number; }[] = objectArray.sort((a,b) => {
    if (a.age > b.age) {
        return 1
    }
    if (a.age < b.age) {
        return -1
    }
    return 0
})
console.log(sortedArray1)

(3)数组中元素的筛选

//数组中元素的筛选使用filter(),检测数值元素,并返回符合条件的所有元素的数组,接受一个回调函数作为参数
//filter()会返回一个新数组,不会改变原来的数组
var arr = [8,1,2,3,4,5,9,6]

//筛选出数组中大于3的元素组成一个新数组
var filter = arr.filter(num => num > 3)
console.log(arr)
console.log(filter)

(4)合并两个数组,快速克隆数组

//链接两个或多个数组时,使用concat(),这个方法会返回一个新的数组包含所连接的数组
var arr1 = [1,2,3]
var arr2 = [3,4,5]
var arr3 = [5,6,7]
var arr4 = ['a','b','c']
var arr5 = arr1.concat(arr2,arr3)
console.log(arr5)

//如果连接的数组类型不同,需要确定它们能否互相转化或兼容
var arr6 = arr4.concat(arr1.map(num => num.toString()))
console.log(arr6)

//如果想要快速克隆数组,可以使用slice()方法,返回一个新数组
//slice方法可以接受两个参数(起始索引,结束索引),如果没有传递参数,默认从第一个元素开始,最后一个元素结束
var numbers = [2,4,6,7,8]
var kelong = numbers.slice()
console.log(kelong)

(5)转换数组内对象为其他类型

//转换数组内对象为其他类型可以使用map()方法将数组中的每一个元素转化为其他类型
//map()通过指定函数处理数组中的每个元素,并返回处理后的新数组
var arr1 = ['a','b','c','1']
var arr2 = [1,2,3]

//将字符串类型转换为boolean类型数组,非空字符转换为true,空字符转换为false
var boolarr1 = arr1.map(a => Boolean(a))
console.log(boolarr1)

//将字符串类型转化为数字类型,非数字转化为NaN
var numarr1 = arr1.map(num => Number(num))
console.log(numarr1)

//将数字类型转化为字符串类型,可以使用toString方法和map,若直接使用toString方法会将整个数组转化为一个字符串
var strarr2 = arr2.map(num => num.toString())
console.log(strarr2)

var _strarr2 = arr2.toString()
console.log(_strarr2)

(6)计算number[]数组中的平均值

//使用reduce()方法可以将数组元素计算为一个值(从左往右),若需从右往左则应使用reduceRight()
var arr = [1,2,3,4,5,6,7,8,9,10]
var addition = arr.reduce((a,b) => a + b,0)

//将数组累加出总和后再除以数组的长度计算出平均值
var average = addition / arr.length

console.log(addition)
console.log(average)

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值