一、数组的创建方式及区别
var arr = new Array('name','age','sex'); //构造函数创建(首字母大写,new去调用)
var arr1 = [1,3,5,7,2]; //字面量创建
//字面量创建和构造函数创建的区别 构造函数创建只有一项时代表数组的长度
var arr2 = new Array(5);
console.log(arr2.length); //5
var arr3 = [3];
console.log(arr3.length); //1
二、数组的常用方法
1、push()可以接收任意参数的长度,返回的是修改后数组的长度,会改变原数组
var arr1 = [1,3,5,7,2]; //字面量创建
console.log(arr1.push(11,22,33)); //8
console.log(arr1); //(8) [1, 3, 5, 7, 2, 11, 22, 33]
2、pop() 表示移除末尾的最后一项,会减少数组的长度,返回的是移除的值,会改变原数组
var arr1 = [1,3,5,7,2]; //字面量创建
console.log(arr1.pop()); //2
console.log(arr1);// [1, 3, 5, 7]
3、reverse() 会直接反转数组的顺序,返回改变后的数组
var arr1 = [1,2,3,4,5,6,7]; //字面量创建
console.log(arr1.reverse()); //(7) [7, 6, 5, 4, 3, 2, 1]
4、sort() 按字母表升序排列数组项,不会正确排列数组,数字>大写>小写
//var arr1 = [1,33,5,7,200,40]; //字面量创建
// console.log(arr1.sort()); // [1, 200, 33, 40, 5, 7]
var arr1 = [1,33,5,7,200,40];
function num(a,b){
return a-b;
}
console.log(arr1.sort(num)); //[1, 5, 7, 33, 40, 200]
5、concat();方法可以基于当前数组中的所有项创建一个新数组,参数可以是数组项或者数组。
var arr1 = [1,3,5,7,2];
console.log(arr1.concat('abc',arr1)); //[1, 3, 5, 7, 2, "abc", 1, 3, 5, 7, 2]
6、 slice() 方法它能够基于当前数组中的一或多个项创建一个新数组。可以接受一或两个参数(索引位置),不改变原数组
参数一代表索引的位置,第二个参数取不到
var arr1 = [1,3,5,7,2];
console.log(arr1); //1,3,5,7,2
console.log(arr1.slice(1,4)); //3,5,7
7、splice() 方法,对数组进行删除、插入、替换,是最强大的数组方法,不返回新数组,改变原数组,
参1:起始索引位置
参2:删除的长度
参数3开始:需要添加的数组项。
var arr1 = [1,3,5,7,2];
//表示从索引为1的地方删除一项
console.log(arr1.splice(1,1));
console.log(arr1); // 1,5,7,2
var arr1 = [1,3,5,7,2];
//表示从索引为1的地方,删除0项,添加a,b
console.log(arr1.splice(1,0,'a','b'))
console.log(arr1);[1, "a", "b", 3, 5, 7, 2]
8、join();将数组转成字符串,参数是连接符,不改变原数组,返回的是新数组
var arr1 = [1,3,5,7,2];
console.log(arr1.join()); //1,3,5,7,2
console.log(arr1.join('')); //13572
console.log(arr1.join(' ')); //1 3 5 7 2
console.log(arr1.join('#')); //1#3#5#7#2