JavaScript基础知识梳理----数组

JavaScript基础知识梳理--数组

1、创建方法

空数组:var obj=new Array();

指定长度数组: var obj=new Array( size );

指定元素数组 :  var obj=new Array( 元素1,元素2,....);

单位数组:var obj=new Array[ 元素1,元素2,元素3,...,元素N];

多维数组:var a=new Array( [数组1],[数组2],[数组3],...,[数组N] );

2、基本操作

存取数组元素:

单维数组:数组名[ 下标索引 ]

多维数组:数组名[外层数组下标][内层数组下标]

特性:数组长度是弹性的,可自由收缩

     数组下标从0开始

   下标类型--数值

       --非数值--转为字符串

       --生成关联数组

       --下标作为对象属性的名字

   数组元素可以添加到对象中

增加数组元素:  使用[]运算符指定新的下标

删除数组:delete数组名[下标]

遍历数组:for( var 数组元素变量 in 数组 );

判断是否为数组:isAarry();----->

  Array.isArray(object) 

   

var ar = [];
var result = Array.isArray(ar);
// Output: true

var ar = new Array();
var result = Array.isArray(ar);
// Output: true

var ar = [1, 2, 3];
var result = Array.isArray(ar);
// Output: true

var result = Array.isArray("an array");
document.write(result);
// Output: false

  

3、数组属性

Constructor: 引用数组对象的构造函数

Length:返回数组的长度

Prototype:通过增加属性和方法扩展数组定义

4、ECMAScript 3方法

添加:

push()---在数组末尾添加任一项并返回修改后数组的长度

unshift()---在数组头部添加任意项并返回新数组的长度

concat()---合并两个数组并返回合并后的新数组

删除:

pop()---删除并返回数组的最后一个元素

shift()---删除并返回数组的第一个元素

 

  push()和pop()-----栈方法(后进先出)

  push()和shift()-----队列方法(先进先出)

 

子数组:

splice()---删除任意数量的项--> splice(要删除的下标,要删除的项数);

      ---在指定位置插入指定的项--> splice(起始下标,0,要插入的项)-----参数0表示不删除任何项

    ---替换任意数量的项-->splice(起始下标,要删除的项数,要插入的项)

  splice()返回一个数组,该数组包含被删除的项,如果没有删除项,则返回空数组;

slice()---功能: 从已有的数组中选取部分元素构成新数组

     ---slice(返回项的起始位置,返回项的结束位置)---(1,如果是负数,则用数组长度加上该值确定位置。2,起始位置为数组的实际下标。3,结束位置的实际下标为结束值减一)

数组排序:

reverse()---颠倒数组中元素的顺序

sort()---功能:对字符数组或数字数组排序

     ---特性: 默认为字符串比较

     按数值大小比较(需函数支持--升序)

reverse()和sort()返回的都是经过排序后的数组

sort()说明

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

 

1、若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

2、若 a 等于 b,则返回 0。

3、若 a 大于 b,则返回一个大于 0 的值。

  

 1 function compare(value1,value2){
 2     if(value1>value2){
 3        return 1;
 4     }else if(value1<value2){
 5        return -1;
 6     }else{
 7      return 0;
 8     }
 9 }

 

 

数组转换:

toString()---转换为字符串并返回

toLocalString()---转换为本地格式并返回

Join()---用指定分隔符分割数组并转换为字符串

5、ECMAScript 5方法

位置方法:

indexOf(v1,v2)---从数组中起始位置开始查找

lastIndexOf(v1,v2)---从数组的结束位置开始查找

参数:v1要查找的项,v2表示查找七点

两个方法都返回要查找的项在数组中的位置,或者在没有找到的情况下返回-1。在比较第一个参数与数组中的每一项时,会使用全等操作符,也就是说,要求查找的项必须严格相等。

迭代函数:

every()---如果该函数对每一项都返回true,则返回true

Filter()---返回值为true的所有数组成员

forEach()---无返回值

map()---返回每次函数调用的结果数组

some()---有任意一项返回true,则返回true

参数: 接收参数(v1--要在每一项上运行的函数,v2--运行该函数作用域对象)

传入参数(v1--数组项的值item,v2--该项在数组中的位置,v3--数组对象本身)

缩小方法:

reduce()---从数组起始位置开始遍历

reduceRight()---从数组末尾开始遍历

参数:接收参数(v1--每一项上调用的函数,v2--作为缩小基础的初始值)

传入参数(v1--前一个值prev,v2--当前值cur,v3--项的索引index,v4--数组对象array)

 

posted @ 2016-09-22 20:04  galaxyxd  阅读(245)  评论(0编辑  收藏  举报