ECMAScriptJavaScript中Array类型方法总括

Array类型是ECMAScript中最常用的类型之1,ECMAScript中的数组与其余大部分言语中的数组有着一定大的区分。ECMAScript数组的每1项能够保存任何项目标多寡。那里计算了数组类型的绝大多数艺术,方便现在查找使用。

一、创造数组的主干措施

  创设数量的中坚方法有二种:

  一.行使Array构造函数

var colors=new Array();
var colors=new Array(20);  //创建length值为20的数组
var colors=new Array("red","blue"); //创建包含2个字符串值得数组

  贰.用到数组字面量表示法

var colors=[];
var colors=["red","blue"];

二、读取和设置数组值

var colors=["red","blue","green"];
alert(colors[0]);  //读取第一项
colors[2]="black";  //修改第三项
colors[3]="brown";  //增加第四项
colors.length=2;  //删除第二项后的所有值
colors[colors.length]="yellow";  //在数组末尾位置添加新项

附注:数组的length属性不是只读的。因而能够透过设置那脾特性,能够从数组的尾声移除项或向数组中添加新项。

三、检验数组

if(Array.isArray(value)){
    //用户操作
}

肆、转换方法

var colors=["red","blue","green"];
alert(colors.toString());  //red,blue,green
alert(colors.valueOf());  //red,blue,green

全数指标都兼备toString()和valueOf()方法。调用toString()方法会再次来到由数组中的每种值得字符串方式拼接而成的三个以逗号分隔的字符串。valueOf()重返的依然数组.数组的toString()方法能够使用join()方法代替。不过join()方法能够自定义分隔符

var colors=["red","blue"];
alert(colors.join(","));  //red,blue
alert(colors.join("||"));  //red||blue

五、栈方法

  栈是一种LIFO后进先出的数据结构,也正是最新添加的项最早被移除。使用push()和pop()方法能够完结类似栈的行为。

  push()方法能够吸收接纳任意数量的参数,把它们每一个添加到数组末尾,并回到修改后的数组的长短。

  pop()方法则从数据最后移除最后壹项,减少数组的length值,然后回来移除的项。

var colors=new Array();
var count=colors.push("red","blue");
alert(count);  //2
var item=colors.pop();  
alert(item);  //blue
alert(colors.length);  //1

陆、队列方法

   队列数据结构的拜访规则是FIFO先进先出结构。队列在列表的背后添加项,从列表的前端移除项。使用push()和shift()方法能够完毕类似队列的行为。

  shift()方法能够移除数组中率先个项并赶回该项,同时将数组的长短减壹。

var colors=new Array();
var count=colors.push("red","blue");
alert(count);  //2
var item=colors.shift();
alert(item);  //red
alert(colors.length);  //1

附注:ECAMScript还提供了一个unshift()方法。它与shift用途相反:它能在数组前添加任意个项并重返新数组的长度。同时选择unshift()和pop()方法,能够从相反的样子来效仿队列,即在数组的前端添加项,从数量背后移除项。(不再举例).

7、重排序方法

  壹.反转数组顺序reverse()

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

  贰.排序方法sort()

  排序方法sort()超越3/陆气象下都会吸收接纳1个比较函数作为参数,以便大家钦定哪个值位于哪个值得前边。

function compare(v1,v2){
    return v2-v1;
}
var arr=[0,1,5,10,15];
arr.sort();
alert(arr);  //0,1,10,15,5 不是我们希望的排序结果
arr.sort(compare);
alert(arr);  //0,1,5,10,15 希望的结果

捌、操作方法

  1.concat()

  concat()方法能够依据当前数组中的全数项创制一个新数组,这几个方法会先创造当前数据的1个副本,然后将选用到的参数添加到那个副本的最后。

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

  2.slice()

  slice()方法能够依据当前数组中的一个或多少个项创立贰个新数组。它能够收到1或八个参数,即要再次来到项的苗子和截止地方(不包涵甘休地方)。1个参数时再次回到钦赐地方到当前数组的终极全数项。

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

  附注:倘诺参数是负值,则用数经理度加上该数来规定相应的地方。例如slice(-2,-一)与slice(三,四)获得的如出一辙的。要是得了地方小于伊始地点,则赶回空数组。

  3.splice()

  splice()方法重要用途是向数组中部插入项。

splice(0,2)  //删除数组中前两项(第一个参数为要删除第一项的位置,第二个参数为要删除的项数)
splice(2,0,"red","blue")  //从当前数组的位置2开始插入"red"和"blue"(第一第二个参数同上,第三个及以后的任意个表示要插入的项)
splice(2,1,"red","blue")  //从当前数组中删除位置2的项,然后再从位置2开始插入"red"和"blue"

9、地方方法

  indexOf()和lastIndexOf().它们都吸收接纳五个参数:要物色的项和代表查找起点的地方的目录(第一个参数可选).

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

 ⑩、迭代方式

  every():对数组中的每1项运营给定函数,假如该函数对每一项都回来true,则赶回true。

var numbers=[1,2,3,4,5,4,3,2,1];
var everyResult=numbers.every(function(item,index,arry){ //参数说明:数组项的值、该项在数组中的位置、数组对象本身
  return (item>2);
});
alert(everyResult);  //false

  some():对数组中的每壹项运转给定函数,如若该函数对任一项重临true,则赶回true。

var numbers=[1,2,3,4,5,4,3,2,1];
var someResult=numbers.some(function(item,index,arry){ //参数说明:数组项的值、该项在数组中的位置、数组对象本身
  return (item>2);
});
alert(someResult);  //true

  filter():对数组中的每壹项运维给定函数,重返该函数会回到true的项构成的数组。

var numbers=[1,2,3,4,5,4,3,2,1];
var filterResult=numbers.filter(function(item,index,arry){ //参数说明:数组项的值、该项在数组中的位置、数组对象本身
  return (item>2);
});
alert(filterResult);  //[3,4,5,4,3]

  map():对数组中的每一项运行给定函数,重回每一遍函数调用的结果组成的数组。

var numbers=[1,2,3,4,5,4,3,2,1];
var mapResult=numbers.map(function(item,index,arry){ //参数说明:数组项的值、该项在数组中的位置、数组对象本身
  return item*2;
});
alert(mapResult);  //[2,4,6,8,10,8,6,4,2]

  forEach():对数组中的每一项运转给定函数,未有重回值。

var numbers=[1,2,3,4,5,4,3,2,1];
numbers.forEach(function(item,index,arry){ //参数说明:数组项的值、该项在数组中的位置、数组对象本身
  //用户操作
});

101、归并措施

  ECMAScript5新增四个归并方法。reduce()和reduceRight()。那四个点子都会迭代数组中的全数项。不相同的是reduce()方法从数组的率先项初步,reduceRight()则从数组的最有一项起始。那三个措施都接受五个参数:3个在每一项上调用的函数,一个是作为联合基础的早先值(可选)。

var values=[1,2,3,4,5];
var sum=value.reduce(function(prev,cur,inex,array){  //参数说明:前一个值、当前值、项的索引、数组对象
    return prev+cur;
});
alert(sum);  //15

var sum2=values.reduce(function(prev,cur,index,arry){
   return prev+cur;
},20);
alert(sum2);  //35

谢谢阅读。