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

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐