8-31 钟申义 日志

8-31 钟申义 日志

数组

创建数组

创建空数组
数组直接量 var arr=[]; 使用内置构造函数 var arr=new Array();
创建数组同时初始化数组元素
数组直接量 var arr=[值1, 值2,...]; 使用内置构造函数 var arr=new Array(值1,值2,...);
创建含有n个空元素的数组
var arr=new Array(n) n为数组长度 arr[0]="name"; arr[1]="sex";.........
数组元素的访问
不限制元素的数据类型 不限制下标越界 不限制元素个数
数组的长度
获取最后一个元素 arr[arr.length-1] 获取倒数第n个元素 arr[arr.length-n] 末尾追加一个新元素 arr[arr.length]=值
缩容
删除末尾一个元素 arr.length-- 删除末尾n个元素 arr.length-=n 清空数组 arr.length=0
数组分类
索引数组 遍历索引数组 for(var i=0;i<arr.length;i++){
arr[i]; //当前数组元素}
关联数组
创建关联数组 创建空数组 var hash=[] 向数组中添加新元素 hash["下标名/key"]=值
访问关联数组元素 hash["下标名(key)"]
关联数组特点
关联数组length属性始终为0 关联数组无法使用索引数组的API
关联数组遍历
for(var key in hash){
key //仅获取当前下标名称
hash[key] //获取当前元素值
}
遍历数组中的元素
for-in for循环
数组中的方法(API)
数组转字符串 String(arr) arr.toString() arr.join("连接符") 无缝拼接 arr.join("")
判断空数组 arr.join("")===""
拼接和截取数组
拼接 var newArr=arr1.concat(值1,值2,arr2,....)
截取 var subArr=arr.slice(start,end);
修改数组
删除元素 arr.splice(start,n)
插入元素 插入元素 var arr=[1,2,3,4,5,6,7,8,9]; arr.splice(0,0,"1","2");
替换元素 arr.splice(start,n,值1,值2...) var arr=[1,2,3,4,5,6,7,8,9]; arr.splice(0,2,"1","2")
翻转数组中的元素 arr.reverse()
排序
冒泡排序 arr.sort() 将arr中每个元素转为字符串,再按字符串升序排列,对数组中的元素进行排序,默认是
按照Unicode码从小到大排列
function compare(a,b){return a-b;} // 最简单的数字升序比较器
function compare(a,b){return b-a;} // 数字降序比较器,颠倒比较器函数返回值的正负号
              使用ES6语法            arr.sort(function(a,b){
//  return a-b;     //从小到大排列
//  return b-a;     //从大到小排列

})

栈和队列
栈(stack) (结尾)出入栈 入 arr.push(值) 出 var last=arr.pop()
(开头)出入栈 入 arr.unshift(值) 出 arr.shift()
队列 队列(queue) 结尾入 arr.push(值)
开头出 arr.shift()
二维数组
创建二维数组 先创建空数组,再赋值 在创建数组同时,初始化子数组 arr[i][j]
访问二维数组中的元素
遍历二维数组
常用方法:交换冒泡排序中两数的位置 arr[j]=[arr[j+1],arr[j+1]=arr[j]][0]
数组的使用
使用indexof 利用ES6中的set去重 利用双层for循环嵌套 利用sort 利用includes 利用reduce+includes 利用filter

字符串

String API
将英文字母转为大写 str.toUpperCase()
将英文字母转为小写 str.toLowerCase()
var char=str.charAt(i) var unicode=str.charCodeAt(i) var char=String.fromCharCode(unicode)
查找某个字符出现的位置下标
var i=str.indexOf("字符",start)
截取字符串
var subStr=str.slice(start,end) var subStr=str.substring(start,end)
var subStr=str.substr(start,n)
切割
简单切割 var subs=str.split("分隔符")
复杂切割 var subs=str.split(/正则表达式/)
常用方法:将字符串打散为字符数组 var chars=str.split("")
查找
var i=str.search(/正则表达式/i) var kwards=str.match(/正则表达式/ig) regexp.exec(str)
替换
简单替换 str=str.replace(value1,value2) str=str.replace(/正则表达式/ig,“替换值”)
高级替换 str=str.replace(/正则表达式/ig,function(kw,\(1,\)2,...){
               // kw:自动获得本次找到的完整关键词
                 // $n:自动获得本次找到的关键词中的第n个分组的子内容
                // return 根据不同的kw,返回不同替换值
              })
衍生 删除 str=str.replace(/day/ig,"")
格式化 var str="20200520"; var reg=/(\d{4})(\d{2})(\d{2})/ig; str.replace(reg,"\(1年\)2月$3日")

心得

感觉今天讲的有点快 , 特别是Dom的类容,我没得跟上!

评论