JavaScript中的Array

摘要:
Array类型是ECMAScript最常用的类型。ECMAScript中数组的每个项都可以存储任何类型的数据。也就是说,数组的第一项存储字符串,第二项存储值,第三项存储对象。例如,varcolors=[“red”,“blue”,“green”];varjoinStr=颜色。参加警报;//红色||蓝色||绿色6.堆栈方法Push():可以接收任意数量的参数,将它们逐个添加到数组的末尾,并返回修改后的数组的长度。Varcolors=[“红色”、“绿色”、“蓝色”];Varremoved=颜色。拼接(0,1);//删除1个警报项目,从0开始//红色,删除的项目删除=颜色。拼接//从位置1插入两个警报//返回空数组Removed=colors拼接;//从项目1开始,删除一个项目,然后再添加两个项目,这相当于替换,警报//黄色,返回替换的项目

Array类型是ECMAScript 用的最多的类型了,ECMAScript中的数组每一项可以保存任何类型的数据,也就是说,数组的第一个项保存字符串,用第二个保存数值,用第三个位置来保存对象。二千数据的大小是可以动态调整的,即可以随着数据的添加自动增长以容纳新增数据。
    1.创建数组数组的方式分为两种:
        1.1使用 nwe 的方式
          var colors=new Array();
         1.2.使用Array构造函数省略new操作符
               var colors=Array(3);      //创建一个包含3项的数组
               var names=Array("Greg");   //创建一个包含1项,即字符串“Greg”的数组


        2.使用字面量的方式来创建
        var colors=["red","blue","green"];       //创建一个包含3个字符串的数组
        var names=[];                            //创建一个空数组

  2获取和设置数组的值,试用方括号,如下所示:
       var colors=["red","blue","green"];       //定义一个字符串的数组、
       alert(colors[0]);                      //取到第一项,并显示,索引是从0开始的,所以是red
       colors[2]="black";                    // 修改第三项
       colors[3]="brown" ;                   //新增一个项

  3.数组的项数保存在其length属性中,这个属性始终返回0或者更大的值。
         var colors=["red","blue","green"];
         alert(colors.length);     //显示的是3
         var names=[];
         alert(names.length);      //空的数组,长度是0,返回的是0

       注意:数组的length属性不是只读的,因此,通过设置这个属性,可以从数据的末尾移除或项数组中添加新项。如:

            colors.length=4;     //现在数组就多了一个长度,值是undefind

            colors.length=2;    //数组的长度改变成了2个了



 4.检测数组
   使用ECMAScript5 新增的Array.isArray() 这个方法,如:
    if (Array.isArray(value)) {         //value是数组对象
        //对数组进行操作
  }

5.转换方法
  tostring():把数组转成string
  join(): 使用自定义的分隔符来构建这个这个字符。如:
    var colors=["red","blue","green"];
    var joinStr=colors.join("||");
    alert(joinStr);                        //red||blue||green

6.栈方法
  Push(): 可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。  
  Pop() : 从数组末尾移除最后一项,减少数组的length的值,然后返回移除的项。
  Var colors=new Array();                   //创建一个数组
  Var count=colors.push(“red”,”green”);    //添加两项
  Alert(count);                           //返回2
  Count=colors.push(“black”);             //推入另一项
  Var item=colors.pop();                  //移除最后一项,并返回移除的对象
  Alert(item);                           //所以,是 black
   Alert(item.length);                  //长度以减少了

7.列队方法
  Shift() : 移除数组中第一项,并返回该项,同时将数组长度减1;
  Var item =colors.shift();     //取得第一项
  Alert(item  );          //取得第一项:red
  Alert(colors.length);            //长度减1
  Unshift(): 在数组前端添加任意个项,并返回添加后的长度。


  Var colors=[“red”,”blue”];
   Var  count=Colors.unshift(“black”);    //添加一个black到这个数组的最前端,并返回长度
  Alert(colors.tostring());        // 现在数组里的项: black ,red,blue


8.重新排序方法
  Reverse(): 反转数组项的顺序;

9.操作方法
  Concat(): 可以基于当前数组中的所有项创建一个新数组。
  Var colors=[“red”,”green”,”blue”];
  Var colors2=colosr.concat(“yellow”,[“black”,”brown”]);
  Alert(colors);          //red,green,blue
  Alert(colors2);          //red,green,blue,yellow,black,brown

  Slice():基于当前数组中的一个或多个项创建一个新数组,
  Slice(index,number):index表示开始位置;number表示结束位置,不给默认是到当前数组末尾的所有项。如果结束位置小于开始位置,则返回空数组。
  Splice():向数组中插入项,使用方法 如下:
    删除:可以删除任意数量的项,只需要制定2个参数: 要删除的位置,要删除的项数
   插入:可以向指定位置插入任意数量的项,3个参数:开始位置,0(要删除的数),插入的项
   替换: 可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定3个参数:起始位置,要删除的项,要添加的项。

    Var colors=[“red”,”green”,”blue”];
    Var removed=colors.splice(0,1);         //从0开始,删除1项
     Alert(remove);    //red  ,删除的项
    Removed=colors.splice(1,0,”yellow”,”orange”);    //从位置1开始插入两项
    Alert(removed);     //返回一个空数组

    Removed=colors.splice(1,1,”red”,”blue”);
       //从项1开始,删除一项,然后再添加两项,相当于替换,

    Alert(removed);   //yellow  ,返回被替换的项

10.位置方法
  IndexOf(value,index):   从数组开始位置向后查找,返回其下标
  lastIndexOf(valeu,index): 从数组的末尾开始向前查找。返回其下标
  包含两个参数:value:要查找的项, index:开始找的位置,没有找到就返回-1;

    Var number=[1,2,3,4,5,4,3,2,1];
    Alert(number.indexof(4));    //从开始位置找起,而且没给开始位置,不给是从0开始找起,会一直找,直到找到,返回对应的下标,并返回其下标; 所以返回的是3

    Alert(number.indexOf(4,4));  //这次,给了起始位置,所以会从下标4开始找起,下标4对应的是值 5,5后面就是4了,所以返回是 5:
    Var person={“name”:”a”};
    Var people=[{“name”:”a”}];
    Var morePeople=[person];
    Alert(people.indexOf(person));   //-1
    Alert(morePeople.indexOf(person));   //0



11.迭代方法
  Every():对数组何总的每一项运行给定函数,如果该函数对每一项都返回true,则返回true;
  Filter();对数组中的每一项运行给定函数,返回这个函数会返回true的项组成的数组。
  ForEach(): 对数组中的每一项运行给定函数,这个方法没有返回值。
  Map(): 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
  Some():对数组中的没一项运行给定函数,如果该函数对任一项返回true,则返回true
  ,以上方法都不会修改数组中包含的值。

    Var number=[1,2,3,4,5,4,3,2,1];
      //item :表示数组具体元素,index:表示下标 ,array:表示当前数组
    Var everyResult=number.every(function(item,index,array){
         Return (item>2);
    });

    Alert(everyResult);  //false

    Var someResult=number.some(function(item.index,array){
       Reutn (item>2);
    });
    Alert(someResult);   //true

  以上代码调用every()和some(),传入的函数只要给定项大于2就会返回true,对于every(),它返回true,因为只有部分数组项符合条件,对于some(),结果就是true,因为至少有一条大于2.


   Var filterResult =.filter(function(item,index,array){
     Reutnr (item>2);
    
  });
  Alert(fileterResult);    //[3,4,5,4,3]
  Var mapResult=number.map(function(item,index,array){
      Return item*2;

  });
  Aelrt(mapResult);   //[2,4,,6,8,10,8,6,4,2]

  number.forEach(function(item,index,array){
      //执行操作
  });


注意啊: 以上有很多的方法必须要现代浏览器上才用啊,ie9 以前的浏览器都不支持,今天就被坑了。最后用JQURY解决的。
            



免责声明:文章转载自《JavaScript中的Array》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Form表单提交数据的几种方式JDK10下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MATLAB的基本元素

MALTAB程序的基本数据单元是数组,MATLAB 的变量名必须以字母开头,后面可以跟字母,数字和下划线(_).只有前31个字符是有效的;如果超过了31 个字符,基余的字符将被忽略。如果声明两个变量,两变量名只有第32 个字符不同,那么MATLAB 将它们当作同一变量对待。要注意的是:确保你所声明的变量名前31 个字符是独一无二的。否则,MATLAB 将无...

JavaScript中DOM操作文档对象模型获取标签内容

DOM操作文档对象模型获取标签内容一、通过id属性值获取标签对象(只能获取一个标签对象) document.getElementById('id属性值') //获取标签页中id为div1的标签对象 var oDiv1 = document.getElementById('div1'); //输出为id为id为div1的标签内容 console.log(oD...

PHP 如何获取二维数组中某个key的集合(高性能查找)

分享下PHP 获取二维数组中某个key的集合的方法。 具体是这样的,如下一个二维数组,是从库中读取出来的。 代码: $user = array( 0 => array( 'id' => 1, 'name' => '张三', 'email' => 'zhangsan@sina.com', ), 1 => a...

快学Scala-04-函数和数组

1.函数的定义形式 def add([参数:类型])[返回类型][=]{方法体} 注意:方法体的return 不是必须的,最后一句默认返回 方法体的花括号可以没有 总之 可以没有参数,没有返回值,没有=号,没有花括号,没有return   def add(a:Int,b:Int):Int={ return a+b } def add(a:I...

Linux Cache 机制

在阅读文章前,您应该具备基本的存储器层次结构知识,至少要了解局部性原理。要详细了解cache基本原理,可以参考本书《深入理解计算机系统》中存储器体系结构一章:   带着疑问来看文章,cache对于程序员是不可见的,它完全是由硬件控制的,为什么在linux内核中还有cache.h这个头文件,定义了一些关于cache的结构? 1. cache概述 cache,...

Matlab学习笔记(三)

二、MATLAB基础知识 (四)数组 MATLAB总是把数组看作存储和运算的基本单位,标量数据也被看作是(1×1)的数组 一维数组的创建 创建一维数组的几种方法:(e_two_14.m) 直接输入法:直接通过空格、逗号和分号来分隔数组元素。 步长生成方法:x=a:inc:b,a和b为一维向量数组的起始数值和终止数值,inc为数组的间隔步长;如果a和b...