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)

评论