【滑稽】 每日一记 JS内置对象(数组部分)

JS提供的内置对象:
array、boolean、number、string、date、math、regexp


数组Array:
概念:数组是在内存中连续存储多个有序元素的结构,
元素的顺序,称为下标,通过下标查找对应元素
声明:
1、字面量声明:
var arr1 = [,,,];
JS中,同一数组,可以储存多种不同的数据类型
但一般同一数组只用于存放同种数据类型
例:var arr1 = [1,"2",true,{"name":"hahaha"},[1,2]];
2、new 关键字声明:
var arr2 = new Array(参数);
参数可以为:
a、可以为空:即声明一个没有指定长度的数组
b、数组长度length:声明一个指定长度的数组,但数组的长度随时可变可追加,最大范围为0-2^32-1
c、数组默认的N个值:new Array(1,"2",true);相当于[1,"2",true]

3、数组中元素的读写/增删:
读写:

通过下标来访问元素,例如arr[2]
增删:

delete arr[n];删除数组的第n+1个值,但数组长度不变,对应位置值为undefined
arr.push(值);数组最后增加一个值,相当于arr3[arr3.length] = 3;
arr.unshift(值);数组的第0位插入一个值,其余位数顺延,数组长度增加1;(与arr[0]=1不同)
arr.pop();删除数组最后一位,与delete不同的是,pop执行后数组长度也会减少一个,相当于arr.length-=1;
arr.shift();删除数组第0位,长度也会减1

数组中其他常用方法:
join():括号内可放分隔符
传入一个分隔符,将数组用指定分隔符分隔,连接为字符串,参数为空时,默认用逗号分隔。
contact(): 将多个数组的值链接为新的数组:不会修改原数组
[1,2].contact([3,4],[5,6]) = [1,2,3,4,5,6] 链接时中括号至多拆一层
[1,2].contact([1,2,[3,4]]) = [1,2,1,2,[3,4]] 多层中括号,以二维数组形式存在
调用以下四个方法,原数组均被改变:
push() 数组最后增加一个数,unshift()数组最后增加一个数,返回数组新的长度
pop() 删除数组最后一个,shift()删除数组第一个 ,返回被删除的值
reverse():将数组反转,即逆序排列,原数组被改变
slice(begin,end):原数组不会被改变,截取数组中的某一部分,成为新数组,
传递一个参数默认为开始索引(begin index),从当前下标开始截到最后;
传递两个参数,截取从开始索引到结束,区间左闭右开,即包含begin,不含end
参数可以为负,-1表示最后一个,倒数第二个为-2,以此类推
sort(function):对数组进行排序,原数组会被改变,不指定排序function,默认按ascii码值排序,
传入排序函数,默认两个参数a,b,如果返回值>0,则a>b,反之返回值<0,则a<b,如果返回值=0,则a=b

arr3.sort(function(a,b){
                return a-b;  //升序排列,即b在前,a在后
                 return b-a;  //降序排列,即a在前,b在后
            });

indexOf(value,index)返回value值对应的索引位置,若未找到,则返回-1
lastindexOf(value,index)返回最后一个value对应的下标位置,若未找到,返回-1
若未指定index参数,默认在数组所有元素中查询,若指定index参数,则从当前index开始向后查询

二维数组和稀疏数组:
稀疏数组:并不含有从0开始到length-1的所有索引(length值比实际元素个数大)
二维数组:var arr = [[1,2],[3,4],[5,6],[7,8]] 取出数组元素:arr[行号][列号]
嵌套循环遍历二维数组:

for (var i=0;i<arr.length;i++){
  for (var j=0;j<arr[i].length;j++){
    console.log(arr[i][j]);
  }
}

 


 

posted @ 2017-04-17 17:24  瓜皮猴  阅读(120)  评论(0)    收藏  举报