DevEco Studio常用对象方法全解析
1、Object对象【静态方法】
object.keys(对象) 返回数组,数组元素是属性名
object.values(对象) 返回数组,数组元素属性值

2、Math对象【静态方法】
Math.PI 获取圆周率 Math. abs 绝对值
Math.ceil 向上取整 Math. max(数组) 求最大值
Math.floor 向下取整 Math.min(数组) 求最小值
Math.round 四舍五入
Math.floor(Math.random()*(最大值-最小值+1)+最小值)

3、Date对象【实例化方法】
日期对象,创建、解析、操作日期和时间,使用 Date 对象首先需要通过 new 操作符进行实例化
语法:let 变量名:Date=new Date()


![]()
时间戳
时间戳 1970年01月01日...到现在的毫秒数
Date.now() 1970年-至今的总毫秒数
![]()
实现倒计时效果
未来的时间戳--现在的时间戳=>转化为时分秒 =>开启定时器,一秒获取时间戳差值


倒计时结束:关闭定时器,状态变量归零
If判断差值=0,在getoutTime函数里操作

![]()
4、Strig对象
1)split()
语法:字符串.split(‘分隔符’)
作用:将字符串分割为数组,返回值是数组

2)trim()
语法:字符串.trim()
作用:去除字符串两端的空格,返回新字符串

3)toLowerCase()和toUpperCase()
语法: 1、字符串.toLowerCase()字符串转小写 返回新字符串
2、字符串.toUpperCase()字符串转大写 返回新字符串

4)includes()
语法:字符串.includes(字符串)
作用:在一个字符串中找另一个字符串,返回值是true/false

5)slice()
语法:字符串.slice(开始下标,结束下标)
作用:/截取字符串,返还截取到的字符串,不修改原始字符串。

5、数组对象
数组是有序的数据集合,数组都是Array的实例化对象
语法:Let 数组名:类型[]=[数据1 ,数据2,…]
1)查找数组元素
数组.index of (查找的元素):找元素,有则返回元素下标,没有返回-1
![]()

2)拼接
数组.join(‘分隔符’)=>数组转为字符串
默认用逗号拼接

3)数组遍历
数组.forEach((item:类型,index:numbe)=>){ 业务 } 没有返回值
4)映射 创建新数组
数组.map<返回值类型>((item,index)=>{ return 结果 })
// map 基本使用01- 基于numArr返回新数组,每一个数组元素翻倍
const numArr: number[] = [1, 2, 3, 4, 5]
const newArr: number[] = numArr.map((item: number, index: number) => {
// console.log(``, item, index)
return item * 2
})
console.log(`newArr:`, JSON.stringify(newArr)) // [ 2, 4, 6, 8, 10]
// map 基本使用02 - 基于 foodArr 返回新数组,每一项 都是一个对象 [{},{},{}]
// name 为食物名,price 为 5-10 的随机价格 ,比如 { name:'西兰花',price:10 }
interface FoodInfo {
name: string
price: number
}
const foodArr: string[] = ['西兰花', '西葫芦', '西红柿', '西北风']
const newFoodArr: FoodInfo[] = foodArr.map<FoodInfo>((item: string, index: number) => {
return { name: item, price: Math.floor(Math.random() * 6) + 5 }
})
console.log(``, JSON.stringify(newFoodArr))
5)筛选
数组.filter((数组项:类型,下标:类型)=>{ return 条件:条件是true是符合 }) 返回筛选后的新数组
遍历数组筛选符合条件的元素,返回新数组,数组元素类型与原数组一致
如从元素都是对象的数组,筛选条件是对象中某一个值,返回时仍是对象数组
// filter基本使用 01 - 筛选出大于 5 的数
const nums: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
const newArr: number[] = nums.filter((item: number, index: number) => {
// console.log(`nums:`, item, index)
// return true 取全部数据
return item > 5
})
console.log(`newArr:`, newArr) // [6,7,8,9,10]
6)排序
数组.sort((数组项1:数字,数组项2:数字)=>{ return 数组项1-数组项2/2-1}) 改变原数组

// 数值数组排序
const arr: number[] = [5, 12, 8, 130, 44]
arr.sort((a: number, b: number) => {
// return a - b 升序
return b - a // 降序
})
如果排序的是对象数组,a、b(数组项)的类型就是对象类型
7)数组求和
数组.reduce((上次累加的结果,数组项 形参)=>{ },初始值=0) 返回值是累加值
遍历数组求和
const arr: number[] = [5, 12, 8, 130, 44]
const arrTotal: number = arr.reduce((sum: number, item: number) => {
return sum + item
}, 0)
console.log(`arrTotal`, arrTotal) // 199
8)找元素下标
数组.findIndex(数组项:类型,下标:类型)=>{return 条件} 返回值是下标或-1 没有此元素
const arr = ['西兰花', '西葫芦', '西兰花']
const arrIndex: number = arr.findIndex((item: string, index: number) => {
return item === '西葫芦1'
})
9)找元素
数组.find((数组项:类型,下标:类型)=>{return 条件})
查找元素,有则返回数组元素,无则undefined
const strArr1 = ['西兰花', '西葫芦', '西红柿']
const findStr = strArr1.find((item: string, index: number) => {
return item === '西红柿1'
})
console.log(`findStr:`, findStr) // undefined 没有找到元素
10)判断所有元素是否符合条件
数组.every((数组项:类型,下标:类型)=>{ return 条件 })
every 元素是否都能符合条件 - 符合返回true, 不符合返回false
// 1. 数值数组 判断是否每个元素都大于 2
const numArr = [2, 4, 6, 8, 10]
const flagNum = numArr.every((item: number, index: number) => {
return item > 2
})
console.log(`flagNum`, flagNum) // false
// 2. 字符串数组 判断是否每个元素里面都有绿字
const foodArr = ['绿茶', '绿豆', '绿色能源', '绿色心情', '茉莉奶绿']
const flgFood = foodArr.every((item: string, index: number) => {
return item.includes('绿')
})
console.log(`flgFood`, flgFood) // true
11)判断是否有一个元素符合条件
数组.some((item:类型,index:number)=>{ return 条件 })
找至少一个符合条件的元素,返回布尔值
// 1. 数值数组 判断是否有等于 5 的元素
const numList = [2, 4, 6, 8, 10]
const flagNum = numList.some((item: number, index: number) => {
return item === 5
})
console.log(`flagNum:`, flagNum) // false
// 2. 字符串数组 判断是否有名字中有 色 的元素
const foodList = ['绿茶', '绿豆', '绿色能源', '绿色心情', '茉莉奶绿']
const flagFood = foodList.some((item: string, index: number) => {
return item.includes('色')
})
console.log(`flagFood:`, flagFood) // true
12)判断数组中有无某个元素
数组.includes(元素) 找是否有此元素 返回值是布尔值
// 1. 字符串数组 判断是否有名字中有 '绿豆'
const foodList = ['绿茶', '绿豆', '绿色能源', '绿色心情', '茉莉奶绿']
console.log(``, foodList.includes('绿豆')) // true
console.log(``, foodList.includes('绿帽子')) // false
更多推荐
所有评论(0)