var arr1 = []; //数组字面量
var arr2 = new Array(); //不推荐
//通过系统内置的Array构造函数声明数组
var arr3 = Array(); //不使用
//所有数组都继承于Array.prototype
在JavaScript中数组是另一种对象机制
var arr = [,1,3,,,4,7,] //稀松数组,其length为7
var arr1 = new Array(5) //[,,,,,,] new Array(1,2,,,3)会报错 new Array(5.2)报错 new Array('a')可以,数组长度为1
push方法和unshift方法
继承自Array的原型里的方法
-->返回值,都是执行了方法以后数组的长度
unshift在数组第一位前面加元素
Array.prototype.myPush = function(){
for(var i=0;i<arguments.length;i++){
this[this.length] = arguments[i];
}
return this.length
}
pop方法 和 shift方法
pop删除数组最后一位,返回被删除元素,不接收参数
shift删除数组第一位,并返回被删除元素,同不接收参数
reverse方法
倒序
splice方法
参数(开始项的下标,剪切长度,剪切以后最后一位开始添加数据)
var arr = ['a', 'b', 'c', 'd'];
arr.splice(1, 2, 1,2,3,4,5) //arr变为['a', 1, 2, 3, 4, 5, 'd']
var arr = ['a', 'b', 'c', 'e'];
arr.splice(3, 0, 'd') //arr变为['a', 'b', 'c', 'd', 'e'];
arr.splice(-1,0,'d')同样可以实现,数组从后往前数下标从-1开始
数组排序 sort()
sort()返回结果是排序以后的数组
sort->sort本身按照ascii码来排序
传参数以后可以实现实际排序
1,参数a,b
2,返回值:1)负值,a就排前面
2)正值,b就排前面
3)0 保持不动
sort(function(a, b){
if(a > b){return 1} ====》改造升序 直接return a-b; 降序:return b-a;
else return -1
})
//随机排序
var arr = [1,2,3,4,5,6];
//Math.random() ->0-1开区间
arr.sort(function(a, b){
var rand = Math.random();
if(rand - 0.5 > 0) return 1; // ====>return Math.random()-0.5
else return -1
})
总结:修改原数组:push/unshift/pop/shift/splice/sort/reverse