【滑稽】 每日一记 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]); } }

浙公网安备 33010602011771号