数组
- 数组是对象类型的数据,是对象当中细分出的类型,对象中属性名是数字,只能以方括号的方式获取。 -为了后期能更多方式去操作对象,把属性名是数字的对象单独独立成数组类型
-
定义数组方式
- var obj = {0:'a',1:'b',3:'c'}相当于var arr = ['a','b','c'] 数字属性名是从0依次递增的
-
数组定义:
- var arr = [] 字面量方式
- var arr = new Array() 构造函数方式
-
每个数组中都有一个length属性,表示数组的个数
-
数组的方法
- 内部已经封装好的功能,可以直接调用
- 了解:1.方法的含义 - 2.方法是否需要传参 - 3.方法的返回值是什么 - 4.原有数组是否发生改变
- 内部已经封装好的功能,可以直接调用
原有数组不改变:
- 1.toString() 将数组转换成字符串
var a = [1,2,3,2,5,67];
console.log(a.toString());//"1,2,3,2,5,67"
复制代码
- 2.join() 将数组按照指定的字符拼接成字符串 参数:指定的字符或不传,传一个空字符串返回“123456”,若不穿返回和toString返回值相同
var a = [1,2,3,2,5,67];
var res = a.join("+");
console.log(res);//"1+2+3+2+5+67"
复制代码
- 3.eval() 全局下的方法,将字符串转换成JS代码执行
console.log(eval(1 + 2 + 3 + 2 + 5 + 67));//80
复制代码
- 3.concat 合并数组的方法 返回值:返回合并后的数组 ,没有传参表示克隆
var a = [1,2,3,2,5,67];
var b = [10,20];
var res = a.concat(b);
console.log(res);//[1, 2, 3, 2, 5, 67, 10, 20] 将数组b合并到数组a后 传给res
var res = [].concat(a,b);//将数组a和数组b合并到空数组后 传给res
var res = a.concat('a',b);//[1, 2, 3, 2, 5, 67, "a", 10, 20]
复制代码
- 4.slice 用来截取数组中的某些项 参数可以是一个或两个 不传参数相当于将原数组克隆一份,有参数slice(n,m)从索引n截取到索引m(包前不包后)
var a = [1,2,3,2,5,67];
var res = a.slice(2,4);
console.log(res);//[3, 2]
复制代码
- n和m还可以为负数slice(-3,-1)从倒数第三项截取到倒数第一项不包含倒数第一项
var a = [1,2,3,2,5,67];
var res = a.slice(-4,-2);
console.log(res);//[3, 2]
复制代码
- indexof()和lastindexof() 查找数组是否有这一项,若有则返回这一项索引,若没有则返回-1
- indexof()从左往右查找 复制代码
var a = [1,2,3,2,5,67];
console.log(a.indexOf(9));//-1
复制代码
- lastindexof()从右往左查找 复制代码
var a = [1,2,3,2,5,67];
console.log(a.lastIndexOf(2));//3
console.log(a.indexOf(2));//1
复制代码
- indexof()和lastindexof()可以有第二个参数,表示设置起始查找位置
var a = [1,2,3,2,5,67];
console.log(a.indexOf(2, 1));//1
console.log(a.indexOf(2, 2));//3
console.log(a.indexOf(2, 10));//-1
复制代码
原有数组改变:
- 1.push 往数组末尾添加内容 参数:添加的内容,返回值:添加后数组的长度
var a = [1,2,3,2,5,67];
a.push(6,7)
console.log (a); //[11,11,1,2,3,2,5,67,6,7]
console.log(res)//10
复制代码
- 2.unshift 往数组起始添加内容 参数:添加的内容,返回值:添加后数组的长度
var a = [1,2,3,2,5,67];
var res = a.unshift(11,11);
console.log (a); //[11,11,1,2,3,2,5,67]
console.log(res)//8
复制代码
- 3.pop 删除数组的最后一项 参数:无,返回值:删除的内容
var a = [1,2,3,2,5,67];
var res = a.pop();
console.log (a); //[1,2,3,2,5]
console.log(res)//67
复制代码
- 4.shift 删除数组的第一项 参数:无,返回值:删除的内容
var a = [1,2,3,2,5,67];
var res = a.shift();
console.log (a); //[2,3,2,5,67]
console.log(res)//1
复制代码
- 5.splice 参数有三个
- 一个参数:splice(n) 从索引n开始删除到最后 返回值是将删除的内容放在一个新数组中返回 复制代码
var a = [1,2,3,2,5,67];
var res = a.splice(2);
console.log (a); //[1,2]
console.log(res); //[3,2,5,67]
复制代码
- 两个参数:splice(n,m) 从索引n开始删除m项 返回值是将删除的内容放在一个新数组中返回 复制代码
var a = [1,2,3,2,5,67];
var res = a.splice(2,3);
console.log (a); //[1,2,67]
console.log(res); //[3,2,5]
复制代码
- 三个参数:splice(n,m,x)从索引n开始删除m个并用x的内容来代替删除的内容,返回值是将删除的内容放在一个新数组中返回 复制代码
var a = [1,2,3,2,5,67];
var res = a.splice(2,3,4,4);
console.log (a); //[1,2,4,4,67]
console.log(res); //[3,2,5]
复制代码
- 若第二参数为0 表示从索引n之前添加数组 复制代码
var a = [1,2,3,2,5,67];
var res = a.splice(0,0,4,4);
console.log (a); //[4,4,1,2,3,2,5,67]
console.log(res); //[]
复制代码
- reverse 将数组反向排列 参数:无 返回值:反向排列后的数组
var a = [1,2,3,2,5,67];
var res = a.reverse();
console.log(res);//[67, 5, 2, 3, 2, 1]
复制代码
- sort
- 不加参数:只能对10以内的数进行排序,按照unicode编码(ASCII码)进行排序 复制代码
var a = [1,2,3,2,5,67,55,43,22];
var res = a.sort();
console.log(res);//[1, 2, 2, 22, 3, 43, 5, 55, 67]
复制代码
- 加函数:
var a = [1,2,3,2,5,67,55,43,22];
var res = a.sort(function (a,b) {
// return (a-b); //从小到大 [1, 2, 2, 3, 5, 22, 43, 55, 67]
return (b-a); //从大到小 [67, 55, 43, 22, 5, 3, 2, 2, 1]
})
复制代码
字符串
字符串常用方法
- 1.charAt 根据索引查找字符若找不到则返回空字符串
var str = 'sdasfrg';
var res = str.charAt(3);
console.log(res);//s
var res = str.charAt(100);
console.log(res);//''
复制代码
- 2.charCodeAt 根据索引返回对应的ASCII码值
var str = 'sdasfrg';
var res = str.charCodeAt(3);
console.log(res);//115
var res = str.charCodeAt(100);
console.log(res);//NaN
复制代码
截取字符串的方法
以下方法若只有一个参数表示从索引n截取到最后
-
- substr(n,m) 从索引n开始截取m个
var str = 'sdasfrg';
var res = str.substr(2,3);
console.log(res);//asf
复制代码
- 2.substring(n,m) 从索引n截取到索引m(包前不包后)n可以为负数,当会把负数当成0
var str = 'sdasfrg';
var res = str.substr(2,3);
var res = str.substring(2,3);//a
复制代码
- 3.slice(n,m)从索引n截取到索引m(包前不包后)可以负数索引,为倒数第几截取到索引m
var str = 'sdasfrg';
var res = str.slice(-4,-2);//sf
复制代码
- 4.split 将字符串按照指定的字符拆分成数组中的每一项
var a = "2018-8-28";
var res = a.split("-");
console.log(res);//["2018", "8", "28"]
复制代码
传空字符串
var a = "2018-8-28";
var res = a.split("");
console.log(res);//["2", "0", "1", "8", "-", "8", "-", "2", "8"]
复制代码
不加参数
var a = "2018-8-28";
var res = a.split("");
console.log(res);//["2018-8-28"]
复制代码
- 5.toUpperCase 全部转换成大写
var str = 'sdasfrg';
var res = a.split();
var res = str.toUpperCase();//SDASFRG
复制代码
- 6.toLowerCase 全部转换成小写
var str = 'sdasfrg';
var res = a.split();
var res = str.toLowerCase();//sdasfrg
复制代码
- 7.indexOf 从左往右查找,找到返回字符索引,找不到返回-1
var str = 'sdasfrg';
var res = str.indexOf('d');
console.log(res);//1
复制代码
- 8.lastIndexOf 从右往左查找,找到返回字符索引,找不到返回-1
var str = 'sdasfrg';
var res = str.indexOf('b');
console.log(res);//-1
复制代码
- 9.replace 替换字符串,返回值是替换后的结果
var str = 'sdasfrg';
var res = str.replace("sd","wang")
console.log(res);//wangasfrg
复制代码