20200831岳浩天
知识总结
数组
创建数组
创建空数组
1.var arr[];
2.使用构造函数创建 var arr=new Array();
创建数组同时初始化数组元素
1.var arr=[值1, 值2,...];
2.使用内置构造函数var arr=new Array(值1,值2,...);var arr=new Array('name','sex','age');
3.创建含有n个空元素的数组
var arr=new Array(3);代表初始化数组的长度为3,可以添加更多个元素
arr[0]="name";
arr[1]="sex";
arr[2]="age";
数组元素的访问
下标 arr[i]
三个不限制:1.不限制元素的数据类型2.不限制下标越界3.不限制元素个数
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"]=值
特点:1. 关联数组length属性始终为0 2. 关联数组无法使用索引数组的API
关联数组遍历:
for(var key in hash){
key //仅获取当前下标名称
hash[key] //获取当前元素值
}
arr.join("连接符"):数组转化为字符串并用连接符连接
拼接
var newArr=arr1.concat(值1,值2,arr2,....)
eg:
var arr1=[1,2,3,4];
var arr2=[7,8,9,0];
var arr3=["2","2"]
var newArr=arr1.concat(arr2,arr3)
console.log(newArr)
截取
var subArr=arr.slice(start,end);
获得i位置开始的第n个元素:arr.slice(i,i+n)
负数参数,表示倒数第n个,本质,自动执行length-n:arr.slice(0,-5); // 截取由0开始,至数组倒数第五个元素的位置
若省略第二个参数,从start一直选取到结尾
省略两个参数就相当于复制整个数组
修改
删除元素arr.splice(start,n) 从下标为start的元素开始 删除n个元素
插入元素arr.splice(start,0,值1,值2,...)
替换元素arr.splice(start,n,值1,值2...)
排序:
arr.sort()问题:使用sort()只能按字符串升序排列
解决问题:自定义比较器函数
第一步定义比较器函数
// 最简单的数字升序比较器
function compare(a,b){return a-b;}
// 数字降序比较器,颠倒比较器函数返回值的正负号
function compare(a,b){return b-a;}
第二步将比较器函数作为对象传入sort方法
arr.sort(compare)
栈
一端封闭只能从另一端进出的数组
注意:开头入栈和结尾入栈的顺序是相反的
arr.push(值) 结尾入栈
var last=arr.pop() 结尾出栈
arr.unshift(值) 开头入栈
arr.shift() 开头出栈
队列
只能从结尾进入,从开头出的数组
arr.push(值) 结尾入
arr.shift() 开头出
二维数组
var arr=[
[值1,值2,...],
[值1,值2,...],
]
用双重for循环遍历二维数组
对象和数组可以相互嵌套
判断对象是否为数组,数组去重
字符串
字符串和数字对比:
相同点
字符串和数组都有下标
字符串和数组都有“.length”的方法
字符串和数组都可以使用for循环遍历
字符串和数组都有slice()的方法
不同点
字符串和数组两者类型不同
字符串和数组的API不通用
包装对象
包装对象的目的是为了让原始类型可以像引用类型数据一样,具有属性和方法,但本质上还是原始类型
String、Number、Boolean:三种包装对象
API
str.toUpperCase()英文转换成大写
str.toLowerCase()英文转换成小写
获取指定位置字符
var char=str.charAt(i)获取下标对应的字符,等价于字符串[下标],省略i, 默认为0
var unicode=str.charCodeAt(i)获取下标对应的unicode码,省略i, 默认为0
var char=String.fromCharCode(unicode)将unicode码转换成字符
var i=str.indexOf("字符",start) 查找某个字符出现的位置下标
截取
var subStr=str.substring(start,end)
slice 和 substring 对比
slice下标允许使用负数,substring下标为负数自动转为0
slice中开始的下标小于结束的下标,substring下标不分顺序
切割
简单切割
var subs=str.split("分隔符")
复杂切割
var subs=str.split(/正则表达式/)
返回值
常用方法:将字符串打散为字符数组
var chars=str.split("")
查找
判断是否包含符合规则的关键词
var i=str.search(/正则表达式/i)
优点:支持正则
缺点:不能设置开始查找位置,只能找第一个,不能找所有。只能返回位置,不能返回关键词内容
获取所有关键词的内容
var kwards=str.match(/正则表达式/ig)
优点:获得所有关键词的内容
缺点;无法返回每个关键词的位置
返回值:返回包含所有关键词的数组,如果没找到,返回null,如果一个函数可能返回null,都要先验证,再使用结果
即获得每个关键词的内容,又获得每个关键词的位置
regexp.exec(str)
评论