javascript 数组总结

数组的创建:

  数组可以使用Array构造函数来创建,或者使用[]快速创建。

  1. Array构造函数创建数组:

    无参数,创建空数组:

var arry = new Array();

    参数为一个数字,指定数组长度

var array = new Array(3);

    带初始化数据,创建数组并初始化参数数据

var array = new Array(1,'34','ceshi')

  2.  "[]"创建数组:

    使用[],创建空数组:

var array = [];

   传入初始化数据

var array = [1,'34','ceshi'];

判断数组类型:

  数组是继承自Object的原型,typeof Array 返回值为'objiect'。如果想进一步判断就需要用以下方法:

  对于一个网页或一个全局作用域而言,使用instanceof操作符可以做到:

var array = [];
if(array instanceof Array){
   alert('判断成功') 
}

  对于instanceof的局限性,为了解决这个问题,ECMAScripts5新增Array.isArray(value)方法:

var arr = [];
if(Array.isArray(arr)){
     alert('判断成功')
}

 数组的一些方法:

  * 添加元素方法:push() 、 unshift()、splice()

    1.push(item1,item2,...): 往数组的末尾添加一个或多个元素,并返回数组新的长度

var arr = [1,2,3];
arr.push(4,5);
alert(arr);//1,2,3,4,5

    2. unshift(item,item2,...): 往数组的头部添加一个或多个元素,并返回数组新长度

var arr = [1,2,3];
arr.unshift(4,5);
alert(arr);//4,5,1,2,3

    3. splice(index,0,item1,item2,...):将一个或者多个元素插入到数组中指定的index位置,插入位置的元素自动后移

var arr = [1,2,3];
arr.splice(1,0,4,5); //在第二个个元素位置添加4,5。
alert(arr)//1,4,5,2,3

* 删除元素方法: pop() 、shift()、splice()

    1.pop(): 删除尾部元素  

var arr = [1,2,3];
arr.pop();
alert(arr);//1,2

    2.shift(): 删除头部元素

var arr = [1,2,3];
arr.shift();
alert(arr);//2,3

    3.splice(index,count): 从指定位置index开始删除,删除指定的count个元素。

 

var arr = [1,2,3,4];
var a = arr.splice(2,2); //从第三个元素开始,删除两个元素,并返回要删除的元素
alert(a);//3 ,4
alert(arr)//1,2

 

* splice 可以实现删除元素或者添加新元素

    splice方法参数描述:

      1.第一个参数:开始删除元素的索引值

      2.第二个参数:表示要删除元素的个数

      3. 第三个参数(以及第三个参数后面的所有参数):表示要插入的新元素(如果只有两个,可以忽略。表示只删除元素不添加元素)

    下面列出几个例子:

    1.删除数组的某一个元素: array.splice(index,1)

var arr = [1,2,3];
var a = arr.splice(2,1); //删除第三个元素,并返回要删除的元素
alert(a);//3 
alert(arr)//1,2

    2.在某个元素后添加元素:array.splice(index,0,value,....)

var arr = [1,2,3];
arr.splice(1,0,4,5); //在第一个元素后面添加4,5
alert(arr)//1,4,5,2,3

    3. 删除某个元素,并且添加新的元素: array.splice(index,index,value,...)

var arr = [1,2,3];
var a = arr.splice(1,2,4,5); //从第二个元素开始删,删除两个元素,然后在原第二个元素的位置添加两个元素4,5
alert(a)//2,3
alert(arr)//1,4,5

 * 将数组转化成字符串: join()

  join(separator):将数组中的每个元素值两在一起,中间用指定的separator隔开;如果没有设置separator,默认用逗号隔开

 

var arr = [1,2,3,4];
var arr2 = [1,2,3,4];
var str = arr.join('_');
var str2 = arr.join();
alert(str);//1_2_3_4
alert(str2);//1,2,3,4

 

* 数组的截取:slice()

  slice(indexstart,indexend): 从索引indexstart开始截取,直到索引indexend之前结束,索引end元素不包括;如果不设置indexend,则表示从indexstart开始一直截取到最后。

 

var arr = [1,2,3,4,5];
var newArr = arr.slice(2,3)//截取第三个元素
var newArr2 = arr.slice(2,4)//从第三个元素开始到第四个元素
var newArr3 = arr.slice(1)//从第二个元素开始截取直到最后一个元素
alert(newArr);//3
alert(newArr2);//3,4
alert(newArr3);//2,3,4,5

 

* 数组合并:concat()

 

   concat(item1,item2,....): 将多个数组或者字符串组合为一个数组,并返回一个新的数组。如果没有参数,就相当于重新copy一个数组。

var arr = [1,2,3,4,5];
var arr2 = [6,7,8,9];
var newArr = arr.concat(4,5);
var newArr2 = arr.concat(arr2);
var newArr3 = arr.concat(arr2,[10,11]);
var newArr4 = arr2.concat();
alert(newArr);//1,2,3,4,5,4,5
alert(newArr2);//1,2,3,4,5,6,7,8,9
alert(newArr3);//1,2,3,4,5,6,7,8,9,10,11
alert(newArr4)//6,7,8,9

* 数组的拷贝:slice()、concat() 

  1.slice(0):返回一个新的数组,注:是一个新的数组不是指向

 

var arr = [1,2,3,4];
var newarr = arr.slice(0);
alert(newarr)//1,2,3,4

 

  2.concat():返回一个新的数组,注:是一个新的数组不是指向

var arr = [1,2,3,4];
var newarr = arr.concat();
alert(newarr)//1,2,3,4

 

* 数组排序:reverse()、sort()

 

   1.reverse():反转元素

 

var arr = [1,2,3,4,5];
arr.reverse();
alert(arr)// 5,4,3,2,1

 

  2.sort():对数组元素排序,

    按照字母顺序排列,即按照ASCII进行生序排列

var arr = ['c','d','abc','bf','e'];
arr.sort();
alert(arr)// 'abc','bf','c','d','e'

    如果要排序数值,就需要使用一个排序函数

 

//排序函数
function sortNumber(a,b){
    return a-b;
}
var arr = [1,100,3,21,101,6];
arr.sort(sortNumber);
alert(arr)// 1,3,6,21,100,101

 

posted @ 2016-07-06 16:46  yangkangkang  阅读(289)  评论(0编辑  收藏  举报