花里。

导航

数组

字面量创建数组

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循环来打印

                            

posted on 2019-01-04 14:36  花里。  阅读(113)  评论(0编辑  收藏  举报