【数组】
什么是数组:数组就是一组数据的集合
数组对象的作用是什么:使用单独的变量名来存储一系列的值。
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<z
A<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<arr.length; i++){
if(arr[i]==arr[i+1]){ //上面解释过了,相同的项会在一起,所以第i和i+1相同,就重复,删除即可
arr.splice(i,1);
i--; //因为删除了,数组的length都会发生改变,如果出现有三项相同的或者是别的情况,就会出错,所以删除后,在用当前这个和别的进行对比。
}
}
alert(arr.sort());//1,11,12,2,3,32,4,43,6
但是,很多时候,我们数组里面是纯数字,我们就想按照数字的大小进行排序,可以,有高级排序方法
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
网友评论