一.创建数组的两种方式
1.利用数组字面量
var arr = [1,2,3];
console.log(arr[0]);
2.利用new Array()
var arr1 = new Array(); //创建一个空数组
var arr1 = new Array(2); // 这个2表示:数组的长度为2,里面有两个空的数组元素
var arr1 = new Array(2,3,5); //等价于[2,3,5]
二.检测是为数组的方法
1.instanceof 运算符 它可以用来检测是否为数组
var arr = [];
var obj = [];
console.log(arr instanceof Array); //true
console.log(obj instanceof Array); // false
2.Array.isArray(参数) H5新增方法 ie9以上版本支持
console.log(Array.isArray([1,2,3])); //true
console.log(Array.isArray(3)); //false
三.添加删除数组元素的方法
1.push() 在数组的末尾,添加一个或多个数组元素
var arr = [1,2,3];
arr.push(4);
console.log(arr);// 输出[1,2,3,4]
var arr = [1,2,3];
arr.push(4,'pink');
console.log(arr);// 输出[1,2,3,4,'pink']
- push是可以给数组追加新的元素
- push()中参数直接写数组想要添加的元素就可以了
- push完毕后,返回的结果是新数组的长度
console.log(arr.push(4,'pink')); //返回值是5,即数组的长度
- 原数组也会发生变化
2.unshift在数组的开头添加一个或多个数组元素
var arr = [1,2,3];
arr.unshift(4,'pink');
console.log(arr);// 输出[4,'pink',1,2,3]
- unshift是可以给数组前面追加新的元素
- unshift()中参数直接写数组想要添加的元素就可以了
- unshift完毕后,返回的结果是新数组的长度
console.log(arr.unshift(4,'pink')); //返回值是5,即数组的长度
- 原数组也会发生变化
3.pop() 删除数组的最后一个元素
arr.pop();
console.log(arr);
- pop是可以删除数组中的最后一个元素,记住一次只能删一个元素
- pop()中没有参数
- pop完毕之后,返回的结果是删除的那个元素
- 原数组也会发生变化
4.shift() 可以删除数组中的第一个元素
arr.shift();
console.log(arr);
- shift是可以删除数组中的第一个元素,记住一次只能删一个元素
- shift()中没有参数
- shift完毕之后,返回的结果是删除的那个元素
- 原数组也会发生变化
四.数组排序
方法名 | 说明 | 是否修改原数组 |
---|---|---|
reverse() | 颠倒数组中元素的顺序,无参数 | 会改变原来的数组,返回新数组 |
sort() | 对数组中的元素进行排序 | 会改变原来的数组,返回新数组 |
var arr = ['pink','red','blue'];
arr.reverse(); // 翻转
console.log(arr); // ['blue','red','pink']
var arr = [3,4,7,1];
arr.sort(); // 排序 从小到大
console.log(arr); // [1,3,4,7]
但是没有参数的sort()只针对于个位数,假如有[13,4,77,1,7]则无法成功排序,因此需要
var arr = [13,4,77,1,7];
arr.sort(function(a,b){
return a-b; //升序的顺序排序
return b-a; //降序的顺序排序
}); // 排序 从小到大
console.log(arr); // [1,3,4,7]
五.数组索引方法
方法名 | 说明 | 返回值 |
---|---|---|
indexOf(数组元素) | 数组中查找给定元素的第一个索引 | 返回存在的索引号,如果不存在,则返回-1 |
lastIndexOf(数组元素) | 数组中查找给定元素的最后一个索引 | 返回存在的索引号,如果不存在,则返回-1 |
案例:数组去重
分析:
- 目标:把旧数组里面不重复的元素取出来放到新数组中,重复的元素只保留一个,放到新数组中去重
- 核心算法:我们遍历旧数组,然后拿着旧数组元素去查询新数组,如果该元素在新数组里面没有出现过,就添加,否则不添加
- 那如何知道元素是否存在?利用新数组.indexOf(数组元素),如果返回-1就说明新数组中没有该元素
var arr = ['c','a','z','a','x','a','x','c','b'];
var newArr = [];
function unique(){
for(var i=0;i<arr.length;i++){
if(newArr.indexOf(arr[i]) === -1){
newArr.push(arr[i]);
}
}
return newArr;
}
console.log(unique ());
六.数组转换为字符串
方法名 | 说明 | 返回值 |
---|---|---|
toString() | 把数组转换成字符串,逗号分隔每一项 | 返回一个字符串 |
join(“分隔符”) | 把数组转换成字符串,通过"分隔符"划分每一项,默认逗号 | 返回一个字符串 |
var arr = [1,2,3];
console.log(arr.toString()); // 1,2,3
var arr = ['blue','pink','green'];
console.log(arr.join()); // blue,pink,green
console.log(arr.join('&')); // blue&pink&green
console.log(arr.join('-')); // blue-pink-green
七.其他方法
方法名 | 说明 | 返回值 |
---|---|---|
concat() | 连接2个或多个数组,不影响原数组 | 返回一个新数组 |
slice() | 数组截取slice(begin,end) | 返回被截取项目的新数组 |
splice() | 根据指定位置进行数组替换、删除、添加 splice(index,len,[item]) | 返回删除项目后的新数组,会影响原数组 |
var arr = ['a','b','c','d'];
arr.splice(1,1);
console.log(arr); //['a','c','d'];
var arr2 = ['a','b','c','d'];
arr2.splice(1,2,'ttt');
console.log(arr2); //['a','ttt','d']
var arr = ['a','b','c','d'];
arr.splice(1,0,'ttt');
console.log(arr); //['a','ttt','b','c','d']