数组
数组是对象数据类型,只能以[ ]的方式获取
数组的定义方式
1.var arr = [ ] 字面量的方式
2.var arr = new Array() 构造函数的方式
有index索引 有length长度
获取数组最后一项 length-1
一次性获取数组中的每一项(2种方法)
for in循环 for循环
数组的方法
原有数组发生改变:
1.push 末尾新增
参数:添加的内容
返回值:添加内容后数组的长度
2.unshift 开头新增
参数:添加的内容
返回值:添加内容后数组的长度
3.pop 末尾删除
参数:无
返回值:删除的内容
4.shift 开头删除
参数:无
返回值:删除的内容
5.splice 删除某几项splice (n)
从索引n开始删除到最后(包含n)
返回值:将删除的内容放在一个新数组中返回splice(n,m)
从索引n开始,删除m个
返回值:将删除的内容放在一个新数组中返回splice(n,m,x)
从索引n开始,删除m个,用x的内容代替删除的内容
参数:3个或3个以上splice(n,0,x)
在索引n之前添加内容
返回值:[ ]
6.reverse 数组颠倒
返回值:反向排列后的数组
7.sort 数组排序
参数:可以不传或传函数的定义
只能对10以内的数字进行排序
对10以外排序进行传参;
1 | var ary = [10,11,12,13,14,15]; |
原有数组不发生改变:
8.tostring 将数组转换成字符串
9.join 将数组按照特定字符拼接成字符串
1 | var ary = [10,11,12,13,14,15]; |
eval 全局下的方法,将字符串转换成JS代码执行
10.concat 数组拼接
返回值:返回合并后的数组
1 | var ary = [10,11,12,13,14,15]; |
没传参表示克隆
11.slice 数组截取
参数:一个或两个slice(n)
从索引n截取到最后slice(n,m)
从索引n截取到索引m(抱前不抱后)var ary = [10,11,12,13,14,15];
ary.slice(-3 ,-1); 倒数第三项 到 倒数第一项 (13,14)
12.indexOf 检测第一次出现的位置
没有返回-1indexOf(n,m)
从索引m开始,查找n
13.lastindexOf 检测最后一次出现的位置 没有返回-1
数组去重
1.两两比较 双循环遍历法
将数组中的每一项分别和后面所有项进行比较,若有重复的则把重复项删除
1
2
3
4
5
6
7
8
9
10
11 var ary = [1,2,2,3,4,5,6,7,7,7,7,8];
for (var i = 0; i < ary.length-1; i++) {
var cur = ary[i];
for (var j = i+1; j < ary.length; j++) {
if (cur === ary[j]) {
ary.splice(j,1);
j --;
}
}
}
console.log(ary);
数组塌陷问题
使用splice把当前项在原有数组删除之后
被删除项的后一项的索引向前提一位
2.对象键值对法
1
2
3
4
5
6
7
8
9
10
11
12 var ary = [10,5,5,5,3,10,2,3];
var obj = {};
for (var i = 0; i < ary.length; i++) {
var cur = ary[i];
if (obj[cur]===cur){
ary.splice(i,1);
i--;
} else {
obj[cur] = cur;
}
}
console.log(ary);
冒泡排序
1
2
3
4
5
6
7
8
9
10
11 var ary = [7,5,3,2];
for (var j = 0; j < ary.length-1; j++) { //轮数
for (var i = 0; i < ary.length-1-j; i++) { //次数
if (ary[i]>ary[i+1]){
var temp = ary[i];
ary[i] = ary[i+1];
ary[i+1] = temp;
}
}
}
console.log(ary);
字符串的方法
1.charAt 通过索引获取字符
2.charCodeAt 通过索引过去对应字符的Unicode编码
截取字符串的方法
3.substr(n,m) 从索引n开始,截取m个
4.subString(n,m) 从索引 n 截取到索引 m (抱前不抱后)
5.slice(n,m) 从索引 n 截取到索引 m (抱前不抱后)支持负数索引
6.split 把字符串分割成字符串数组var str = "2018-08-28";
str.split("-") str.split("") str.split()
7.toUpperCase 全部转换成大写
8.toLowerCase 全部转换成小写
9.indexOf 检测字符串第一次出现的索引位置 不存在返回-1
10.lastindexOf 检测字符串最后一次出现的索引位置 不存在返回-1
11.replace 替换 原有字符串不变,用新字符替换旧字符 replace(oldstr,newstr);var date = "2018-08-28 17:54:30";