我们在数据处理的时候经常会用到数组,下面是我对数组的一些总结。
什么是数组:储存多个数据,并提供操作数据的API的对象
数组根据下标可以分为索引数组和关联数组。
索引数组
索引数组:下标都是数字的数组
如何创建索引数组:
var arr = ["吴白彬","23"];
如何访问:arr[0];
关联数组
关联数组:下标都是自定义名称的数组
关联数组可以让每个元素都有专门的名称,更便于维护和快速查找
如何创建关联数组:
2、向数组中添加新的元素,使用自定义的下标名称:
arr["name"] = "吴白彬";
arr["age"] = 23;
如何访问:和索引数组中的元素,变量的用法一样(.length:失效,永远为0)
索引数组和关联数组的优缺点:
索引数组:只能靠遍历查找,受元素个数和元素储存位置的影响极大,但创建简单
关联数组:查找极快,因为是通过下标定位元素位置,查找速度与元素的个数及元素的储存位置无关,但创建麻烦
数组API
什么是API:就是别人写好的程序,我们直接拿过来用
将数组转字符串:
1、String(arr); 将arr中每个元素都转为字符串,默认用逗号连接。(拍照)
什么时候用String():查看数组的中间修改状态,判断是否发生了变化
2、arr.join("自定义连接符"); 将arr中每个元素都转为字符串,可自定义连接符。
什么时候用arr.join():只要不希望用逗号连接,就必须用join
固定套路:
1、无缝拼接:arr,join("");
2、动态生成页面元素
拼接:将多个数组或元素拼接成为一个新的数组
如何:var newArr = arr1.concat(值1,值2,arr2,...);
注意点:
2、打散数组类型的参数为单个元素再拼接
slice 选取:
选取:选择原数组中指定开始位置到结束位置之间的多个元素组成新数组
如何:var sliceArr = arr.slice(starti,endi+1);
简写:
1、支持负数参数: 代表倒数第n个位置
2、可省略第二个参数,表示一直选取到结尾
3、两个参数都省略: 从头到尾完整复制一个数组
注意点:
删除:
简写:
1、支持负数参数: 代表倒数第n个位置(自动用length-n)
2、省略第二个参数: 一直删到结尾
splice返回值:
splice会将删除的元素组成新的数组返回
var deletes=arr.splice(starti,n);
其中deletes保存了删除的元素
注意点:
1、直接修改原数组
2、不考虑含头不含尾
插入:
注意点:
1、原starti位置的值及其之后的值被向后顺移
2、splice不支持打散数组类型参数,如果插入一个数组,则变为二维数组
替换:其实就是先删除,再插入
arr.splice(starti,n,ֵ1,ֵ2,...);
注意点:删除的元素个数和插入的新元素个数不必一致
将数组中的元素按从小到大或从大到小的顺序重新排列
什么时候用到排序:任何数据在给用户展示前,必须先排序
解决: 只要颠倒比较器结果的正负
注意点:直接修改原数组