1.数组的添加

(1)push():在数组最后面插入项,返回数组的长度

  1. 数组改后的长度 = 数组.push(元素);

(2)unshift():在数组最前面插入项,返回数组的长度

  1. 数组改后的长度 = 数组.unshift(元素);

(3)concat(): 拼接数组,并不会影响原数组,会产生一个新数组

  1. /*
  2. concat 拼接两个数组,但是不能改变原数组的结构
  3. */
  4. var arr =[1,2,3];
  5. var obj = [4,5,6];
  6. // arr.push(obj);
  7. var newArray = arr.concat(obj)
  8. console.log(newArray)

concat方法不会在原来数组的基础上进行添加,要想在原数组的之上进行添加,需要先用…将数组展开,然后用push

  1. var arr1 = [1, 2, 3];
  2. var arr2 = [1, 2, 3];
  3. var obj = [4, 5, 6];
  4. arr1.push(obj);
  5. console.log(arr1);
  6. /* 展开 */
  7. arr2.push(...obj);
  8. console.log(arr2);

image.png

(4)splice():定点添加

  1. //当splice用来增添元素的时候,传参是这样的
  2. arr.splice(index,0,parmas);
  3. //其中index表示插入的位置,是从index前面增加,0表示删除0个元素,parmas表示插入的元素
  4. //举例如下:
  5. var skills = ['html','css','jq','js']
  6. /* splice */
  7. skills.splice(3,0,'vue','react')
  8. console.log(skills)

2.数组的删除

(1)pop():从数组最后面删除,返回数组长度。与push()对应,都是栈方法。

(2)shift():从数组最前面删除,返回数组长度。与unshift()对应,都是队列方法。

(3)splice():定点删除

  1. //当splice用来删除元素的时候,传参是这样的
  2. arr.splice(index,howmany);
  3. //其中index表示删除的开始位置,howmany表示要删除元素的个数

3.数组的修改

修改数组还是用splice方法,当splice用来修改数组的时候,传入三个参数

  1. arrObject.splice(index,howmany,item)
  2. //指定三个参数:起始位置,删除的项数,填入的元素
  3. var arr = [1,2,3,4,5];
  4. arr.splice(0,2,6,7);
  5. alert(arr); //6,7,3,4,5

4.数组的查询

(1)indexOf(value)

indexOf(value) 查询对应值的下标,如果没有对应的值,则返回-1

  1. //indexOf(value) 查询对应值的下标
  2. var arr=[1,2,3,4];
  3. console.log(arr.indexOf(1)); //0

(2)includes()

includes方法判断数组是否包含某个元素,返回一个布尔值

  1. var arr = ['html','css','javascript']
  2. console.log(arr.includes("javascript")) //true

5.数组的遍历

(1)for in遍历

数组遍历用的最多的还是for in遍历,此方法遍历的是数组的index下标

  1. var arr= ['html','css','vue','react'];
  2. for(var i in arr){
  3. console.log(i); //数组的下标
  4. console.log(arr[i]); //数组的值
  5. }

image.png

(2)for of遍历

for of长的和for in差不多,只一个单词之差,但是刚好和for in相反,for of遍历的是值

  1. for(var value of arr){
  2. console.log(value);//直接遍历数组的值
  3. }

image.png

(3)map方法

解释:对数组中每一项运行回调函数,返回该函数的结果,组成的新数组(返回值就是这个新的数组)。
举例:

  1. var arr1 = ["千古", "宿敌", "南山忆", "素颜"];
  2. var arr2 = arr1.map((item,index)=> {
  3. return item + "vae"; //给arr1中所有的元素增加字符串"vae",放到arr2中。
  4. });
  5. console.log(arr1);
  6. console.log(arr2);

数组 - 图4

(4)forEach方法

forEach方法遍历数组里面的方法传两个参数,第一参数表示值,第二个参数表示index下标。

  1. arr.forEach((item,index)=>{
  2. console.log(item);
  3. console.log(index);
  4. })

image.png

6.数组的其他方法

(1)join()将数组拼接成字符串

  1. /* join(separator) join里的是分隔符 */
  2. var arr =[1,2,3]
  3. var str = arr.join("");
  4. console.log(str) // 123
  5. console.log(arr.join()) // 1,2,3
  6. console.log(arr.join("/")) // 1/2/3

(2)sort()排序

如果仅仅使用sort排序,会只看数字的第一位排序,即仅仅把数字当作字符串在排序

  1. var numbers = [4, 2, 5, 11, 13];
  2. console.log(numbers); //[11,13,2,4,5]

在sort里面加上一个比较函数才能达到数字排序的效果

  1. var numbers = [4, 2, 5, 11, 13];
  2. numbers.sort(function(a, b) {
  3. return a - b;
  4. });
  5. console.log(numbers); // [2,4,5,11,13]

(3)reduce()求和

  1. var arr= [1,2,3,4];
  2. var sum =arr.reduce((a,b)=>{
  3. return a+b;
  4. })
  5. console.log(sum);

(4)reverse()反转

注意:reverse方法会改变数组

  1. var arr = [11,23,13];
  2. arr.reverse();
  3. console.log(arr) //13,23,11

(5)slice()截取

slice()方法可以接受一个或两个参数,截取下来的数组还是一个数组
在只有一个参数的情况下,slice()方法返回从该参数指定位置开始到当前数组末尾的所有项
如果有两个参数,该方法返回起始和结束位置之间的项,包头不包尾。

  1. //arrayObject.slice(start,end)
  2. //1个参数
  3. var arr=[1,2,3,4];
  4. var b=arr.slice(1);
  5. console.log(b); //[2,3,4]
  6. //2个参数
  7. var c = arr.slice(1,3);
  8. console.log(c); //[2,3]