2019年1月3日

时间:2021-05-07 19:06:20

数组

 

==================字面量创建数组==================

1. var arr=[]; []里边可以放数字,字符串,true,false,null,undefined,数组([1,2,3]),对象{x:1,y:2}

  var arr=[1,2.3,true,false,null,undefined,[1,2,3],{x:1,y:2}]

2. var x=1;

  var arr=[x,x+3,x*5];

3  var arr=[ , , ]   

  console.log(arr.length);   输出的长度是2  只读到有效的为止 

4 var arr=[ 1 , , 3];

  console.log(arr);     输出结果是[1, , 3]  单独输出下标为1的是arr【1】结果是undefined

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

1 var a=new Array() 创建了个空数组

2 var a=new Array(5) 创建数组 5个空数组

3 var a=new Array(1,2,‘king’,false,2.3,null); 结果是【1,2,‘king’,false,2.3,null】

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

  arr【0】=‘king’;  替换下标是0的元素内容

5 

  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);    输出全部的数组 
  console.log(arr[3]);    //undefined
  console.log(arr.length);   数组的长度为5   (4+1)

6

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

7  定义数组的长度是3,后边数组不加

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

8  Object.defineProperty(arr,'length',{writable:false })  对象定义性质  arr的长度不可写

  var arr=[1,2,3];
  Object.defineProperty(arr,'length',{
  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的元素  位置保留

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

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

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

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转换成大写

  }

  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元素的下标