数组的修改
数组的主要包括:删除,插入,替换,这三件事都是通过一个API(splice)来完成的
首先来看第一个删除
arr.splice(starti,n)删除arr中starti开始的n个元素(包括starti自己也要被删除)
var arr = [1,2,3,4,5];
var arr2 = arr.splice(3,2);
删除的结果为4,5被删除了
注意:1.这个支持负数
2.返回值:被删除的元素组成的临时子数组 是一个假删除,并没有真的删除
3.这个API会直接修改原数组!!!!!!!!!
插入
arr.splice(starti,0,val1,val2/arr)表示将value1,value2等插入到arr中starti的位置
starti表示下标,0表示一个都不删除,在插入后原位置的值会向后依次顺移;如果插入参数数组会将数组的元素单个存放到数组中去
var arr1 = [4,5,6]
var arr2 =[55,66];
arr1.splice(1,0,78,88);
console.log(String(arr1));
arr1.splice(1,0,arr2);
console.log(String(arr1));
这个输出的结果为
[4,78,88,5,6]和[4,55,66,78,88,5,6]
替换
arr.splice(starti,n,value1,value2…) 先删除arr中starti位置开始的n个元素(删除的总个数为starti+n)
再在strati位置插入 value1,value2…
删除的元素个数和插入的新元素不必一致
比如arr.1splice(1,1,0,0,0)
输出的结果为[4,0,0,0,78,88,5,6]
关联数组
关联数组就是自定义下标的数组(是数字的是索引数组),其主要目的就是为了是每个数据有明确的含义,使得查找,维护,读取起来更方便
创建:
比如创建一个jack信息的数组
var jack = [];
jack[“name”]=“杰克”
jack[“sex”]=“男”
jack[“score”]=“98”
jack[“classNo”]=“1”
赋值和访问与索引数组相类似,只是将下标改成字符串
遍历还是用for …in…
for(var key in jack){}(key为当前元素的下标)