• 数组


    字面量创建数组

    var  arr=[ ];//空数组

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

    var arr2=[1,2.3,true,false,null,undefined,[1,2,3],{x:1,y:2}];// 大括号表示对象 中括号表示数组

    var x=1;
    var arr3=[x,x*3,x+2,x+3];
    console.log(arr3); //[1,3,3,4]

    var arr4=[1,,3];
    console.log(arr4);//[1,empty,3]   整体打印显示空

    var arr4=[1,,3];
    console.log(arr4[1]);//[undefined]    单独打印为undefined

    console.log(arr4.length); 长度为3
    var arr5=[,,];
    console.log(arr5.length);长度为2

    通过构造函数Array()创建数组

    var a=new Array();   创建空的数组 

    var a=new Array(5);
    console.log(a.length); 长度为5  括号里是表示数组的元素有几个

    var a=new Array(1,2,'king',false,2.3,null);
    console.log(a);//[1,2,'king',false,2.3,null]   数组 里面能放数字 字符串 对象

    var arr=[1,2,3,4];
    console.log(arr[0]);//1
    console.log(arr[3]);//4 取数组中的某一个元素

    arr[0]='king';
    console.log(arr); 将数组中第0个位置的元素替换成king 结果[king,2,3,4]

    arr[5]='hello nana';
    console.log(arr); [king,2,3,4,,hello nana]

    var x=2;
    console.log(arr[x]); 取数组中第二个元素    3

    arr[arr[x]]=333;
    console.log(arr); [king,2,3,333,,hello nana]

    var obj={x:"2",y:"4"};
    obj["u"]='a';
    obj[1]='b';
    console.log(obj);  先打印下标 
    console.log(obj.length); //对象没有length属性

    var arr=[];
    arr[0]='a';
    arr[1]='b';
    arr[-123]='c';
    arr[2.3]='d';
    arr[null]='e';
    arr[false]='f';
    arr[undefined]='g';
    arr['name']='h';
    arr[4]="pp";
    console.log(arr);   [ "a", "b", 4: "pp", -123: "c", 2.3: "d", null: "e", false: "f", undefined: "g",name:"h"]
    console.log(arr.length); 5  4+1

    var arr=new Array(10);
       arr=[];
       arr[100]='abc';
       console.log(arr.length);  101  100+1

    var arr=[1,2,3,4,5,6,7,8];
       arr.length=3;         定义长度为3
       console.log(arr); [1,2,3]

    arr.length=0;  定义长度为0 
    console.log(arr); []  变成空数组

    arr.length=5; 又定义长度为5 
      console.log(arr);  此时打印是[空*5]

    var arr=[1,2,3];
      Object.defineProperty(arr,'length',{       定义数组的长度 writab:false为 不可写  
      writable:false 
      });
      console.log(arr.length);     长度是3
      arr.length=10;
      console.log(arr.length);    长度还是3  定义了长度不可写 所以还是3

     方法

    1     arr.shift()开头删除

    2  arr.unshift()开头添加

    3  arr.push()尾部添加

    4  arr.pop()尾部删除

    5  delete  arr[0]删除下标为0的元素  位置保留

    var arr=[];
    arr[0]='a';
    arr[1]='b';
    arr.shift(); //开头删除 
    arr.push('d','e','f',12,34); //尾部添加
    console.log(arr); ['b','d','e','f'12,34]

    var res=arr.pop(); //尾部删除
    console.log(res);34
    console.log(arr); ['b','d','e','f'12,]

    arr.unshift(1,2,3,4,5); //开头添加
    console.log(arr); [1,2,3,4,5,'b','d','e','f'12,]

    var arr=['a','b','c','d'];
    delete arr[0]; //位置保留   
    console.log(arr);
    console.log(arr.length);[空,'b','c','d']   用delete删除第0个位置 但位置保留只删除元素

    6  arr.join()将数组内元素组合成一个字符串

    var arr=['a','b','c','d'];
    var res=arr.join(); [a,b,c,d]
    res=arr.join('');[abcd]
    //res=arr.join('...');[a...b...c...d]
    console.log(res);

    7  arr.reverse()将数组元素反过来输出

    res=arr.reverse();['d','c','b','a']
    console.log(res); 

    8  arr.sort()将数组元素按照ASCII码排序

    var arr=['a','b','c','A','B','C'];
    arr.sort();
    console.log(arr); ['A','B','C','a','b','c']

    var arr=[1,2,11,20,3,15];
    arr.sort();
    console.log(arr);  [1, 11, 15, 2, 20, 3]  

    让数组中的数字从小到大 从大到小排序

    arr.sort(function(a,b){
    return a-b;
    });

    console.log(arr); [1, 2, 3, 11, 15, 20]
    arr.sort(function(a,b){
    return b-a;
    });
    console.log(arr);  [20, 15, 11, 3, 2, 1]

    var users=[
    {name:'king',age:12},
    {name:'queen',age:32},
    {name:'zhangsan',age:54},
    {name:'rose',age:66},
    ];
    users.sort(function(a,b){
    if(a.name>b.name)return 1;
    if(a.name<b.name)return -1;
    return 0;
    });
    console.log(users);       按字母的排序从小到大

    for(var i in users){
    console.log(users[i]['name']); king queen  rose zhangsan

    }

    9  arr.concat()组合数组   用来连接两个或者多个数组 该方法不会改变现有的数组。而仅仅会返回被连接数组的一个副本

    10  arr.slice()截取

      var arr=['a','b','c','d','e','f','g','h'];
      res=arr.slice(0,3);     输出是a,b,c   截取的是从下下标为0开始到下标为3之间的元素  但是不包括下标是3的元素

      res=arr.slice(2,-3);输出是c,d,e  截取的是从下标为2开始到从后数第三之间的元素,不包括下标为-3的元素

      res=arr.slice(4);输出结果是e,f,g,h 截取的是下标为4的元素到元素结束  

    11  arr.splice(index,howmany,item1,item2........itemx)

        index:必需。整数,规定添加/删除项目的位置,使用负数从数组结尾数起

        howmany:必需。要删除的项目数量,如果没有设置为0,则不会删除

        item2........itemx:向数组增加新数组。

      var arr=['a','b','c','d','e','f','g','h'];

      aes=arr.splice(0,1)   aes删除的元素是 a (也就是从下标0元素开始到下标1元素删除 不包括下标为1的元素) arr剩下的是b,c,d,e,f,g,h  

      aes=arr.splice(5)  aes删除的元素是f,g,h(也就是从下标5元素开始到结束)   arr剩下的是a,b,c,d,e

      aes=arr.splice(0,2,‘!’,‘?’,‘%’)    从下标0元素开始删除2个 在向数组添加! ? %  结果是‘!’,‘?’,‘%’','c','d','e','f','g','h'

    12  .map()

      var arr=【1,2,3,4,5】;

      res=arr.map(function(x){

      return x*x;

      })

      console.log(res);结果是1,4,9,16,25     数组平方

     var arr=['a!','b!','c','d!','e'];

      res=arr.map(text);     调用函数

      function text(x){

        return x.replace(/!/g,'?').toUpperCase();      replace替换 将!替换成?   toUpperCase转换成大写  g全部

      }

      console。log(res);      ‘A?’ ,‘B?’ , ‘C’  ,‘D?   ,‘E’

    13  筛选过滤filter

      console.log(res);
      var arr=[1,3,4,5,5,623,4,345,4367,null,undefined,false,true,''];
      res=arr.filter(function(x){
        return x<=10;
      });
      res=arr.filter(function(x){
        return x%2==0;
      });
      res=arr.filter(function(x){
        return x!==undefined && x!=null;
      });
      console.log(res);

     every所有的元素判断   some一些元素部分元素

      var age=[12,34,55,66,28,19];
      res=age.every(function(x){
        return x>=18;                结果 false
      });
      res=age.some(function(x){
        return x>=19;                结果 true
      });
      console.log(res);

    14  求和 reduce

      var arr=[1,2,3,4,5];
      res=arr.reduce(function(a,b){
        return a+b;
      });
      res=arr.reduce(function(a,b){
        return a+b;
      },10);                   ,10如果有逗号10的话最后结果在加10
      console.log(res);

    15  indexOf 找下标  如果有这个元素则找出下标是多少 如果没有这个元素那输出结果是-1

        var arr=['a','b','c','d','e','a','bv','a'];

        res=arr.indexOf(‘a’);     结果是0

        res=arr.indexOf(‘b’);     结果是1

        res=arr.indexOf(‘A’);    结果是-1

        res=arr.indexOf(‘a’,2); 结果是5   这个找的是第二个a元素的下标

        res=arr.lastindexOf(‘a’);  结果是7 这个找的是最后一个a元素的下标

    --------------------------

    for in    forEach循环

    var arr=['a','b','c','d','e'];
    for(var i=0,len=arr.length;i<len;i++){
    console.log(arr[i]);                      //['a','b','c','d','e']
    }

    var arr1=[];
       arr1[12]='x';
       arr1[23]='y';
       arr1[55]='z';
       for(var i in arr1){
        console.log(arr1[i]);          通过for in    来打印数组         
       }    

    var arr2=[1,2,3,4,5,6];
    arr2.forEach(function(x){
    console.log(x);
    });

    function Test(element,index,array){
    console.log('要处理的数组为:'+array);
    console.log('索引:'+index+"--值为:"+element);

    arr2.forEach(Test);                       通过forEach循环来打印

                                

  • 相关阅读:
    南邮NOJ 树木枝干问题I
    【HDOJ】1501 Zipper
    【HDOJ】1556 Color the ball
    【HDOJ】1422 重温世界杯
    【HDOJ】1421 搬寝室
    【HDOJ】1455 Sticks
    【HDOJ】1466 计算直线的交点数
    【HDOJ】3308 LCIS
    【POJ】2528 Mayor's posters
    【POJ】3468 A Simple Problem with Integers
  • 原文地址:https://www.cnblogs.com/wangchaoa/p/10216739.html
Copyright © 2020-2023  润新知