这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战
数组
数组的创建
1、利用数组字面量
var arr=[1,2,3];
2、利用new Array
var arr = new Array();
var arr = new Array(2); //数组长度为2,但都是空值
var arr = new Array(2,3); //创建的数组里面有两个元素2和3
检测是否为数组
var arr = [];
arr instanceof Array ; //若为数组返回true 否则返回false
//这个方法也可以确定是不是其他类型
//H5新增的方法ie9才支持
Array.isArray(arr); //返回true 或者 false
添加或者删除数组
1、push()在数组末尾添加一个或者多个元素
返回值为新数组的长度
var arr = [1,2,3];
arr.push(4,5);
arr.push(5);
2、unshift()在数组的开头添加一个或多个元素
返回值为新数组的长度
var arr = [1,2,3];
arr.ubshift(1,3);
arr.unshift(1);
3、pop()删除数组末尾一个元素 返回值是删除元素
var arr = [1,2,3];
arr.pop();
4、shift()删除数组首元素 返回的是删除元素
arr.shift();
反转数组
arr.reverse();
冒泡排序
arr.sort();
但是sort会出现问题,因为sort排序方法为先看第一位再看第二位,比如12,4,67,1,排序后会成为1,12,4,67,所以得这样写
arr.sort(fuction(a,b) {
return a-b;//升序排列
//return b-a;//降序排列
} );
返回数组索引号
var arr = [1, 2, 3, 4];
arr.indexOf(1);//返回该数组元素第一次出现的索引号
arr.lastIndexOf(1);//从后往前查找,相当于找到最后一次出现的
数组转换成字符串
1、toString
var arr = [1,2,3];
arr.toString(); //输出结果为1,2,3
2、join(分隔符)
var arr = [1,2,3];
arr.join(*); //输出为1*2*3
字符串
基本包装类型
- 对象才有属性和方法,那么字符串这个简单数据类型怎么会有属性?
- 基本包装类型:把简单数据类型包装为复杂数据类型
var str = 'er';
var temp = naw String('er');
str = temp;
temp = null;
字符串不可变性
- 定义一个字符串变量,改变其内容,实际上会新开辟出一个空间
根据字符返回位置
str.indexOf(元素); //返回第一个
str.indexOf('要查找的字符',[起始位置]) //起始位置可有也可无
str.lastIndexOf('要查找的字符',[起始位置])
根据索引返回字符
str.charAt(索引);
str.charCodeAt(索引号); //返回索引号字符的ASCII码, 目的:判断用户按下了哪个键
str[index]; //h5新增的
字符串拼接
- concat
str.concat(str1,str2...)
- substr('截取的起始位置','截取几个字符')
- slice('截取的起始位置','截取的终止位置')//终止位置取不到
- substring('截取的起始位置','截取的终止位置')//终止位置取不到,但是不接受负值
替换字符串(把字符串中的某个变成另一个)
var arr = 'andyandy';
str.replace('a','b'); //把a替换成b,只会替换第一个
字符串转换成数组
split('分隔符');
var str2 = 'red, pink, blue';
str2.split(',');
var str3 = 'red&pink&blue';
str.split('&');
//返回结果为['red','pink','blue']