[TOC]

✊总有人要成为第一,为什么不是你。

2021年08月04日

哈哈哈哈今天是我的生日,还是要坚持写总结,加油

工作重点

1 工作重点事项 进度 已完成
2 早上讲JavaScript数组的方法 已完成
- [x]

| | 3 | 下午讲JavaScript数组的方法 | 已完成 |
- [x]

| | 4 | 晚上做练习 | 已完成 |
- [x]

|

遇到的问题和解决思路

遇到的问题

  1. 当删除重复元素的时候,会漏掉

  2. 解决思路

  3. 记得删除后,要i—


  4. 今日总结

    (1)数组的操作方法

    <!DOCTYPE html>










    (2)数组的检索

    <!DOCTYPE html>










    (3)数组转字符串

    <!DOCTYPE html>











    (4)数组的方法

    <!DOCTYPE html>










    (5)数组的方法

    <!DOCTYPE html>











    (6)清空数组的方法

    <!DOCTYPE html>










    1.8 数组方法

    学习数组的方法要关注以下3个重点:
  • 方法参数
  • 返回值
  • 改变不改变原数组

1.8.1 栈方法和队列方法

改变原数组

方法名称 功能描述
push() 将一个或多个元素添加到数组的末尾,并返回数组的新长度。改变原数组
unshift() 将一个或多个元素添加到数组的开头,并返回数组的新长度。改变原数组
pop() 从数组的末尾移出并返回移出数组的一个元素,若是空数组则返回undefined。改变原数组
shift() 从数组的开头移出并返回移出数组的一个元素,若是空数组则返回undefined。改变原数组
  • 栈结构:【特点】先进后出
    push(),pop();
  • 队列结构:【特点】先进先出
    unshift(),shift();

    1.8.2 检索方法

不改变原数组

  • array.includes(item, start):用于确定数组中是否含有某个元素,含有返回true,否则返回false。
    • item是查找的元素。
    • start可选,规定在数组中开始检索的位置(包含本身的位置)。
    • 返回值为true,false。
    • 如果start为负值,则按照从后往前开始找索引开始的位置。
    • 如果 array.length + start为负值,则整个数组都会被搜索。
    • 如果start大于等于数组长度 ,则返回 false 。该数组不会被搜索。
  • indexOf(item,start):检测当前值在数组中第一次出现的位置索引,返回值是在数组中可以找到给定值的第一个索引,如果不存在,则返回-1。
    • item是查找的元素。
    • start可选,规定在数组中开始检索的位置(包含本身的位置)。
    • 返回值是在数组中可以找到给定值的第一个索引,如果不存在,则返回-1。
    • 如果start为负值,则从最后一项开始算起,-1为最后一项,-2为倒数第二项。
    • 如果 array.length + start为负值,则整个数组都会被搜索。
    • 如果start大于等于数组长度 ,则返回-1 。该数组不会被搜索。
  • lastIndexOf(item,start):检测当前值在数组中最后一次出现的位置索引,从数组的后面向前查找,从 start处开始。
    • item是查找的元素。
    • start可选,规定在数组中开始检索的位置(包含本身的位置)。
    • 返回指定元素在数组中的最后一个的索引,如果不存在则返回 -1。
    • 如果start为负值,则从最后一项开始算起,-1为最后一项,-2为倒数第二项。
    • 如果 array.length + start为负值,则该数组不会被搜索,则返回 -1。
    • 如果start大于等于数组长度 ,则整个数组都会被搜索。
  • Array.isArray()用于确定传递的值是否是一个 Array,是返回true,不是返回false
var data = ['peach', 'pear', 26, '26', 'grape'];
// 从数组下标为3的位置开始检索数字26
console.log(data.includes(26, 3));       // 输出结果:false
// 从数组下标为data.length - 3 的位置查找数字26
console.log(data.includes(26, -3));       // 输出结果:true
console.log(data.includes(26, -100));       // 输出结果:true
// 判断变量data是否为数组
console.log(Array.isArray(data));           // 输出结果:true
var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"];
var a = fruits.indexOf("Apple",4);//6
var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"];
var a = fruits.lastIndexOf("Apple",4);//2

1.8.3 数组转字符串

不改变原数组

方法名称 功能描述
join() 将数组的所有元素连接到一个字符串中。
toString() 返回一个字符串,表示指定的数组及其元素。
var arr = ['a','b','c'];
console.log(arr.join());            // 输出结果:a,b,c
console.log(arr.join(''));             // 输出结果:abc
console.log(arr.join('-'));         // 输出结果:a-b-c
console.log(arr.toString());        // 输出结果:a,b,c

注意:

  1. join()和toString()方法的相同点:

    可将多维数组转为字符串,默认情况下使用逗号连接。 当数组元素为undefined、null或空数组时,数组会被转换为空字符串

  2. join()和toString()方法的不同点:

    join()方法可以指定连接数组元素的符号。

1.8.4 其他方法

splice():方法通过删除或替换现有元素或者原地添加新的元素来修改数组

  • 返回值:以数组形式返回被修改的内容。
  • 改变原数组。

语法:
array.splice(index,howmany,item1,…..,itemX)

参数 描述
index 必需。规定从何处添加/删除元素。 该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
howmany 可选。规定应该删除多少元素。必须是数字,但可以是 “0”。 如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
item1, …, itemX 可选。要添加到数组的新元素

对数组进行增删改

增加:arr.splice(index, 0, item)

  • 从索引index开始, howmany(可选):0
  • 把item或者更多的内容插入到索引index的前面
  • 返回值:返回空数组

修改: arr.splice(index, x, item)

  • 从索引index开始,删除x个元素, item替换删除的部分
  • 把原有内容删除掉, 然后用新内容替换掉
  • 返回值:修改掉原有内容的数组

删除:arr.splice(index,x)

  • 从索引index开始,删除x个元素
  • (如果第二个参数省略, 则从index删除到末尾)
  • 返回值:删除掉原有内容的数组
//增加
  var ary1 = [33,44,55,66,77,88];
  ary1.splice(2,0,'a','b')
  console.log(ary1);// [33, 44, "a", "b", 55, 66, 77, 88]
  //修改
  var ary2 = [33,44,55,66,77,88];
  ary2.splice(1,2,'x','y')
  console.log(ary2);// [33, "x", "y", 66, 77, 88]
  //删除
   var ary3 = [33,44,55,66,77,88];
   //console.log(ary3.splice(3,2))//[66, 77]
   console.log(ary3.splice(3));//[66, 77, 88]

slice()(复制原数组的部分内容)

  • 返回值:返回一个新数组
  • 不改变原数组

语法:
array_.slice(_start, end)

参数 描述
start 可选。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。如果省略 start
,则 slice
从索引 0
开始。
end 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。(不包含end)
  • 参数:

array.slice(start, end),从索引start开始查找到end处(不包含end)
array.slice(start) 第二个参数省略,则一直查找到末尾
array.slice(0)原样输出内容,可以实现数组克隆
array.slice(-start,-end) slice支持负参数,从最后一项开始算起,-1为最后一项,-2为倒数第二项

var ary1 = [1,2,3,4,5,6,7,8,9];
 //console.log(ary1.slice(2,8));//从索引2开始查找到索引为8的内容,结果为[3, 4, 5, 6, 7, 8]
 //console.log(ary1.slice(0));
 console.log(ary1.slice(-2,-1));//[8]

reverse():把数组倒过来排列

  • 参数:无
  • 返回值:倒序后新数组
  • 改变原数组
var ary1 = [6,8,10,12]; 
console.log(ary1.reverse());//[12, 10, 8, 6]

concat(value1[, value2[, …[, valueN]]]):用于连接两个或多个数组

  • 参数:value可选,参数可以是具体的值,也可以是数组对象。可以是任意多个
  • 返回值:返回连接后的新数组
  • 不改变原数组
var ary1 = ['你'];
var ary2 = ary1.concat('好');
console.log(ary2);//["你", "好"]

1.8.5 清空数组(内容)

// 方式1 推荐 
arr = [];
// 方式2 
arr.length = 0;
// 方式3
arr.splice(0, arr.length);
arr.splice(0);

数组方法总结:

//改变原数组方法:
var arr = [];
arr.push();
arr.pop();
arr.unshift();
arr.shift();
arr.splice();
arr.reverse();
//不改变原数组方法:
var arr = [];
arr.includes();
arr.indexOf();
arr.lastIndexOf();
arr.slice();
arr.join();
arr.toString();
arr.concat();

自己总结

数组方法总结:

//改变原数组方法:
var arr = [];
arr.push();
arr.pop();
arr.unshift();
arr.shift();
arr.splice();
arr.reverse();
//不改变原数组方法:
var arr = [];
arr.includes();
arr.indexOf();
arr.lastIndexOf();
arr.slice();
arr.join();
arr.toString();
arr.concat();

当去重数组中的一个元素时,记得删除后i—,不要让i向后,防止漏掉