zoukankan      html  css  js  c++  java
  • js数组

    * 数据定义

        定义数组有两个方法:

        1、var arr1 = [];  //定义一个空数组

        2、var arr2 = [1,2,3,"str1","str2"];  //定义一个有5个元素的数组。

        3、var arr3 = new Array(3);  //定义一个空数组

        4、var arr4 = new Array(1,2,3,"str1","str2");  //定义一个指定长度为5的数组。

                数组元素的读和写: 

        arr[0];    //读取第一个数组元素

        arr[0] = "str1";  //改变数组第一个元素的值。

        var arr1 = [1, 2, 3, "st1", "str2",, 3];
        var arr2 = new Array(4, 5, 6, "st");           
    
        //in 操作符用于检测元素在某位置是否存在元素,注意undefined也算存在。
        console.log(0 in arr1);  //返回true, 0 代表位置,该位置存在元素
    
        //添加删除
        arr1.push(33);
        delete arr1[3]; 
    
        //循环
        for (var i = 0; i < arr1.length; i++) {
            if (!arr1[i]) continue;    //跳过null,undefined和不存在的元素
        }
    
        //join() 用于将数组中所有元素都转化为字符串 并连接在一起,还可以自定义连接字符
        arr1.join();
        arr1.join("->");
    
        //reverse() 反转
        arr1.reverse();
    
        //sort() undefined元素排到最后
        //排序标准 负数 0 正数,比较结果先返回小的那个 
        arr2.sort(function (a, b) {
            return a - b;  
        })
    
        //concat() 返回一个新的数组
        arrnew = arr2.concat(4, 5);
        arrnew2 = arr2.concat([41, 42], [43, 44]);
    
        //slice() 用于返回数组指定区间的元素组成的数组,如果输入一个参数,则是从这个参数到结束之间的数组。两个参数就是,第一个参数是起始位置,第二个参数是个数。
        arr3 = [1,2,3,4,5];
        //原来的数组会改变,新数组也会改变,可以联想到substring();
        arr31 = arr3.splice(1,3);    
    
    
        //pop() push() 尾部删除和添加元素
        //shif() unshif() 在头部删除或添加元素
        arr1.shift();
        arr1.unshift([111,111]);  
    
        //9、toString()和toLocaleString()  将数组转化为字符串
       arr1.toString();
        
    
        //1、forEach()  forEach() 从头到尾遍历数组,为每个元素调用指定的函数。
        var arr4 = [1, 2, 3,4,5];
        var sum = 0;
        arr4.forEach(function (v){
            sum = sum + v;
        })
       
       //2、map()  map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组。
       var r5 = arr4.map(function(v){
           return v + 2;
       });
    
       // 3、filter()  filter()过滤,返回的元素是调用数组的一个子集,过滤掉不符合条件的元素。
       var r6 = arr4.filter(function(i,v){
           return i%2==0 && v%2==1;
       });
    
       //4、every()和some()  
      // every()当且仅当数组里的所有元素调用判定函数都返回true,它才返回true。第一次返回false就停止遍历。
       //some()当数组里存在一个元素调用判定函数返回true,它就返回true。第一次返回true就停止遍历。
       var r7 = arr4.some(function(x) {
           return x> 3;
       })
    
       // 5、reduce()和reduceRight()
       //reduce()  将数组中的元素以指定函数进行组合,生成单个值,第一个参数是简化操作函数,第二个参数是传递给函数的初始值。最后结果是初始值再按组合函数与最后结果计算一次。第二个参数即初始值可以省略,当初始值省略就直接从第一个元素开始计算。
       var c = arr4.reduce(function(x, y){
            return x+y;
           }, 1);
    
       //6、indexOf()和lastInsexOf()
       var c1 = arr4.indexOf(2);
       c1 = arr4.lastIndexOf(3);
    
       //7.Array.isArray(),判断一个对象是否是数组
    demo

    1.稀疏数组。

        稀疏数组表示从0 开始不连续索引的数组。通常数组的length代表元素中元素个数,如果数组是稀疏的,length属性值将大于元素的个数。

        in 操作符用于检测元素在某位置是否存在元素,注意undefined也算存在

        如:var a1 = [,,];

          var a2 = new Array(3);

          0 in a1;  //true,因为a[0]有undefined元素

          0 in a2;  //false,a2在索引0处没有元素

    2.数组长度

        length属性用于标志数组的长度

        如:var arr = [1,2,3,4,5];

          arr.length;  //5 arr数组有5个元素

    3.数组元素的添加和删除

        push:  //在数组的末尾添加一个元素

        var arr = [1,2,3];

        arr.push(4,5);    //arr变为[1,2,3,4,5]

        delete: //删除数组某个位置的元素

        var arr = [1,2,3]

        delete arr[1]  //arr变为[1,,3]

        1 in arr      //false

    4.数组的遍历

        数组的遍历通常使用for语句来实现,  或者 for ... in

        var arr = [1,2,3,4,5];

        for(var i = 0.i<arr.length;i++){

          if(!a[i]) continue;        //跳过null,undefined和不存在的元素

        }

    5.多维数组

        多维数组就是数组里的元素还是数组

        如:var arr = [[1,2,3],[,4,5,6]];

          arr[1][1];  // 5

    6.数组方法

       1、 join()  用于将数组中所有元素都转化为字符串 并连接在一起,还可以自定义连接字符

          var arr = [1,2,3];

          arr.join();    // => "1,2,3"

          arr.join("==");   // => "1==2==3";

       2、 reverse()  用于将数组元素的顺序颠倒

          var arr = [1,2,3];

          arr.reverse();  //arr数组变为[3,2,1]

       3、 sort();   //用于对数组内的元素进行排序。可以传入一个函数用作排序,如果为空,则按字母顺序排序。undifined元素排到最后

          var arr = [1,2,3];

          a.sort(function(a,b){

            return a-b; //排序标准 负数 0 正数,比较结果先返回小的那个 

          });  //arr数组的值为[1,2,3]  如果第二个条件变为b-a则结果为[3,2,1]

        4、concat()  //用于组合一个新的数组,返回一个新的数组

          var arr = [1,2,3]

          arrnew = arr.concat(4,5)  //arrnew数组为[1,2,3,4,5]

          arrnew1 = arr.concat([4,5],[6,7]);  //arrnew1数组为[1,2,3,4,5,6,7]

         5、slice()  //用于返回数组指定区间的元素组成的数组,如果输入一个参数,则是从这个参数到结束之间的数组。两个参数就是,第一个参数是起始位置,第二个参数是个数。

           var arr = [1,2,3,4,5];

           var arr1 = arr.slice(2);  //[3,4,5]

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

       6、splice()   删除或者添加元素。会改变原数组本身,相当于C#中的引用(ref),原数组是删除的元素组成的数组,返回值是剩下的元素组成的数组。

          var arr = [1,2,3,4,5];

          var arr1 = arr.splice(1,3);  //arr为[2,3,4],返回的数组arr1为[1,5]

          var arr2 = [1,2,3,4,5];

          var arr3 = arr2.splice(2,0,'a','b');  //从第2位开始删除,删除两个元素,然后从该位置插入'a','b';arr2为[],因为没有删除任何元素,arr3[1,2,'a','b',3,4,5]

       7、 push()与pop()  在数组尾部添加或删除一个元素,添加时返回之为最后一个添加的元素,删除时。返回值为删除的那个元素。

          push()  函数在数组尾部添加一个元素。

          pop()   函数删除数组的最后一个元素。

          var arr = [1,2,3]

          arr.push(4);  //arr为[1,2,3,4]

          var arr1 = [1,2,3]

          arr.pop();   //arr1为[1,2]

       8、unshift()和shift()

          shift(),unshift()与push(),pop()只不过,是在数组头部操作而非尾部。

          shift()  在数组头部移除一个元素,返回值为被删元素。

          unshift() 在数组头部添加一个元素,返回组为最后一个添加的元素。

          var arr = [1,2,3];

          var a = arr.shift();  //arr变为[2,3] a为1

          var arr1 = [1,2,3];

          var b = arr1.unshift([4,5]);  //arr1变为[4,51,2,3],b为4  返回最后一个添加的,先添加5再添加4

        9、toString()和toLocaleString()  将数组转化为字符串

          var arr = [1,2,3]

          arr.toString();  //生成"1,2,3"  与不使用任何参数的join()是一样的。

    * ECMAScript中的数组方法

      1、forEach()  

           forEach() 从头到尾遍历数组,为每个元素调用指定的函数。 for(var item in Array){}    for ... in 循环

         var arr = [1, 2, 3, 4, 5];
         var sum = 0;
         arr.forEach(function (value) {
            sum = sum + value;
         });
         document.write(sum);  //sum最终为15

        2、map()  map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组。

           var arr = [1, 2, 3, 4, 5];
            var arr1 = arr.map(function (value) {
                return value + 1;
            });
            document.write(arr1.join()); //arr1为[2,3,4,5,6]
       var arr1 = [1, 2, 3, "st1", "str2",, 3];
        var arr2 = new Array(4, 5, 6, "st");           
    
        //in 操作符用于检测元素在某位置是否存在元素,注意undefined也算存在。
        console.log(0 in arr1);  //返回true, 0 代表位置,该位置存在元素
    
        //添加删除
        arr1.push(33);
        delete arr1[3]; 
    
        //循环
        for (var i = 0; i < arr1.length; i++) {
            if (!arr1[i]) continue;    //跳过null,undefined和不存在的元素
        }
    
        //join() 用于将数组中所有元素都转化为字符串 并连接在一起,还可以自定义连接字符
        arr1.join();
        arr1.join("->");
    
        //reverse() 反转
        arr1.reverse();
    
        //sort() undefined元素排到最后
        //排序标准 负数 0 正数,比较结果先返回小的那个 
        arr2.sort(function (a, b) {
            return a - b;  
        })
    
        //concat() 返回一个新的数组
        arrnew = arr2.concat(4, 5);
        arrnew2 = arr2.concat([41, 42], [43, 44]);
    
        //slice() 用于返回数组指定区间的元素组成的数组,如果输入一个参数,则是从这个参数到结束之间的数组。两个参数就是,第一个参数是起始位置,第二个参数是个数。
        arr3 = [1,2,3,4,5];
        //原来的数组会改变,新数组也会改变,可以联想到substring();
        arr31 = arr3.splice(1,3);    
    
    
        //pop() push() 尾部删除和添加元素
        //shif() unshif() 在头部删除或添加元素
        arr1.shift();
        arr1.unshift([111,111]);  
    
        //9、toString()和toLocaleString()  将数组转化为字符串
       arr1.toString();
        
    
        //1、forEach()  forEach() 从头到尾遍历数组,为每个元素调用指定的函数。
        var arr4 = [1, 2, 3,4,5];
        var sum = 0;
        arr4.forEach(function (v){
            sum = sum + v;
        })
       
       //2、map()  map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组。
       var r5 = arr4.map(function(v){
           return v + 2;
       });
    
       // 3、filter()  filter()过滤,返回的元素是调用数组的一个子集,过滤掉不符合条件的元素。
       var r6 = arr4.filter(function(i,v){
           return i%2==0 && v%2==1;
       });
    
       //4、every()和some()  
      // every()当且仅当数组里的所有元素调用判定函数都返回true,它才返回true。第一次返回false就停止遍历。
       //some()当数组里存在一个元素调用判定函数返回true,它就返回true。第一次返回true就停止遍历。
       var r7 = arr4.some(function(x) {
           return x> 3;
       })
    
       // 5、reduce()和reduceRight()
       //reduce()  将数组中的元素以指定函数进行组合,生成单个值,第一个参数是简化操作函数,第二个参数是传递给函数的初始值。最后结果是初始值再按组合函数与最后结果计算一次。第二个参数即初始值可以省略,当初始值省略就直接从第一个元素开始计算。
       var c = arr4.reduce(function(x, y){
            return x+y;
           }, 1);
    
       //6、indexOf()和lastInsexOf()
       var c1 = arr4.indexOf(2);
       c1 = arr4.lastIndexOf(3);
    
       //7.Array.isArray(),判断一个对象是否是数组
    js测试

     

  • 相关阅读:
    类型参数化
    scala 集合类型
    scala 列表List
    统计HDFS 上字节数据统计
    用scala 实现top N 排名
    scala 基础笔记
    Java 设计模式之 装饰者模式
    通过java api 读取sql 中数据(查询)
    leetcode 34. Search for a Range
    canvas画简单电路图
  • 原文地址:https://www.cnblogs.com/SmileSunday/p/9203321.html
Copyright © 2011-2022 走看看