【数组】
什么是数组:数组就是一组数据的集合
数组对象的作用是什么:使用单独的变量名来存储一系列的值。
var arr=[1,5,2,4]
var arr=['adf','ada','ade','11213',12,'_','李鹏',{},[],function(){},obj]
//数组中可以存放任何东西,字符串,数字,函数,数组,json等都可以。
数组的创建:
1)可以直接写:
var arr=[2];
2)js中对象基本都可以通过new出来,
var arr=new Array(1,2,3,4)
注:如果只写一个值得话,意思是:创建一个空数组,规定空数组的长度
var arr=new Array(2);
//申明一个arr数组,并且规定长度是2,也就是length。
JS中数组自带的一些小函数,方法:
1、arr.push() 往数组最后添加一项
var arr=[1,2,3];
arr.push(4)
alert(arr) //[1,2,3,4]
2、arr.unshift() 往数组前面添加一项
var arr=[1,2,3];
arr.unshift(0)
alert(arr) //[0,1,2,3]
3、arr.pop(); 删除数组最后一位
var arr=[1,2,3];
arr.pop()
alert(arr) //[1,2]
4、arr.shift(); 删除数组第一位
var arr=[1,2,3];
arr.shift()
alert(arr) //[2,3]
5、arr.splice(开始的位置,删除的个数,添加的东西)
var arr=[1,2,3];
arr.splice(1,1) //如果不添加,可以不写
alert(arr) //[1,3];
//**********
var arr=[1,2,3];
arr.splice(1,1,4,5,6) ,
alert(arr) //[1,4,5,6,3];
6、arr.join('*'); 数组变成字符串 括号里是字符串的链接方式
var arr=[1,2,3];
//切完后,变成的字符串是 数组的每一项中间加上你的链接方式。
alert(arr.join('*')) //'1*2*3';
//***********
var arr=[1,2,3];
alert(arr.join('-')) //'1-2-3';
//***********
var arr=[1,2,3];
//不写的话就直接切
alert(arr.join('')) //'123';
7、arr1.concat(arr2,arr3) 数组拼接 括号里是要拼接的数组,多个数组用逗号隔开
var arr=[1,2,3];
var arr1=[4,5,6];
var arr2=[7,8,9];
alert(arr.concat(arr1,arr2)) //1,2,3,4,5,6,7,8,9
8、arr.reverse() 反转数组
var arr=[1,2,3];
alert(arr.reverse()) //3,2,1
9、arr.sort() 数组的排序
注:这里面的排序并不是普通理解的数字大小排序,是按照字符集的大小来排列的;
字符串比较大小
1、字母
a
2、数字
1)两个都是字符串 '12' '11'
跟字母一样
2)一个字符串一个数字 '12' 4
会隐式类型转换
3、汉字
也是有顺序的,可以从网上搜索看看,没有人记得住。
第一个 一
最后一个 龥
所以,如果我们有一个纯数字的数组,直接用sort方法排序,顺序并不是按照数字大小排列的。
比如:
var arr=[1,2,3,12,45,75,11,23];
alert(arr.sort()) //1,11,12,2,23,3,45,75
有一种数组去重的方法中就用到sort,当然数组去重很多种方法,我就说这一种。
var arr=[12,32,43,11,2,3,4,1,2,3,4,6,1];
arr.sort(); //因为是根据字符集大小来排序,所以相同的一项,肯定是排在一起。如:a,a,11,11 所以利用这个去重
for(var i=0; i
但是,很多时候,我们数组里面是纯数字,我们就想按照数字的大小进行排序,可以,有高级排序方法
var arr=[12,1,5,2,45,3,87,11,-12,0];
arr.sort(function(a1,a2){ //代表的是数组中某两项
return a1-a2; //返回的必须是数字
//a1-a2 从小到大
//a2-a1 从大到小
//Math.random()-0.5 乱序 美一次顺序都不一样
});
alert(arr);//-12,0,1,2,3,5,11,12,45,87