Array对象的用法,js中数组方法

字数 525阅读 104

【数组】

什么是数组:数组就是一组数据的集合
数组对象的作用是什么:使用单独的变量名来存储一系列的值。

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

推荐阅读更多精彩内容