// 数组的一些常用方法
// 1、push ----> 在数组的末尾处添加内容 他的参数是要添加的项 返回值是新增后的数组长度
// 示例:
let arr1 = [1, 2, 3, 4] //定义一个数组 arr1
arr1.push(5) // 用push方法在数组末尾添加数据
console.log(arr1); // 得到新数组 ---> [1, 2, 3, 4,5]
// 2、pop ----> 从数组的末尾处删除内容 返回值是删除后的项
// 示例:
let arr2 = [1, 2, 3, 4]//定义一个数组 arr2
arr2.pop()// 用pop方法在数组末尾删除
console.log(arr2);// 得到新数组 ---> [1,2,3]
// 3、unshift ----> 在数组的首位添加内容 参数是添加的项 返回值是新增后数组长度
// 示例:
let arr3 = [1, 2, 3, 4]//定义一个数组 arr3
arr3.unshift(0)// 用unshift方法在数组首位添加
console.log(arr3);// 得到新数组 ---> [0,1,2,3,4]
// 4、shift ----> 在数组的首位删除内容 返回值是删除的项
// 示例:
let arr4 = [1, 2, 3, 4]//定义一个数组 arr4
arr4.shift()// 用shift方法在数组首位删除
console.log(arr4);// 得到新数组 ---> [2,3,4]
// 5、splice ----> 对数组进行删除和修改 有三个参数 若是不传第三个参就只做删除 返回修改后新数组
// 第一个参数是从那个下标开始 第二个参数是删除几位 第三个参数是要修改进去的内容
// 示例:
let arr5 = [1, 2, 3, 4, 5, 6]//定义一个数组 arr5
arr5.splice(2, 2) // 从下标2开始 删除2位
console.log(arr5); // 得到 [1,2,5,6]
arr5.splice(2, 0, 4) // 从下标2开始 删除0位 修改项是4
console.log(arr5); // 得到 [1,2,4,5,6]
// 6、slice ---> 对数组的截取 有两个参数 返回新数组 不修改原数组
// 第一个参数是开始下标 第二个参数是结束下标 若不写第二个参数 则截取到末尾
let arr6 = [1, 2, 3, 4, 5, 6, 7] //定义一个数组 arr5
console.log(arr6.slice(1, 3)); // 从下标1开始截取到3 得到[2,3]
// 7、indexOf ---> 在数组查找对应目标第一次出现的下标 参数为查找的元素 查找到返回下标 未找到返回-1
// 示例:
let arr7 = [1, 2, 3, 4, 5, 4, 6, 7]
console.log(arr7.indexOf(4)); // 在数组查找 4 找到并返回下标3
console.log(arr7.indexOf(9)); // 在数组查找 9 未找到并返回-1
// 8、lastIndexOf 在数组查找对应目标最后一次出现的下标 参数为查找的元素 查找到返回下标 未找到返回-1
// 示例:
let arr8 = [1, 2, 3, 2, 4, 5, 2, 6, 7]
console.log(arr8.lastIndexOf(2)); // 在数组查找 2 找到并返回下标6
console.log(arr8.lastIndexOf(9)); // 在数组查找 9 未找到并返回-1
// 9、includes 判断一个数组中是否包含一个指定的值 参数为置顶的内容 返回一个布尔值
// 示例:
let arr9 = [1, 2, 3, 4, 5]
console.log(arr9.includes(2)); // 在数组查找2 找到返回 true
console.log(arr9.includes(7)); // 在数组查找7 未找到返回 false
// 10、join 用一个指定的分隔符 把数组拼接为一个字符串 参数为指定的分隔符 默认为逗号 返回字符串
// 示例:
let arr10 = [1, 2, 3, 4, 5, 6]
console.log(arr10.join('、')); // 以符号 、 拼接数组 得到字符串 1、2、3、4、5、6
// 11、concat 用于多个数组的拼接 参数可以是值 也可以是数组 返回拼接后的新数组
let arr11 = [1, 2, 3, 4]
let arr12 = [5, 4, 3, 2, 1]
console.log(arr11.concat(arr12));// 拼接数组arr11 、 arr12 得到数组[1,2,3,4,5,4,3,2,1]
// 12、 sort 用于对数组的排序 默认从小到大 参数为排序的规则 返回新数组
// 示例:
let arr13 = [3, 12, 44, 21, 55, 34, 67, 52, 1]
arr13.sort((a, b) => b - a) // 通过sort规则 从大到小重新排序arr13
console.log(arr13);// 得到数组[67,55,52,44,34,21,12,3,1]
// 13、 reverse 翻转数组 数组倒过来排列 返回翻转后数组
// 示例:
let arr14 = [8, 6, 12, 10]
arr14.reverse() // reverse对数组进行翻转
console.log(arr14); // 得到反转后数组 [10,12,6,8]
// 14、 forEach 数组的遍历方法 循环遍历数组每一项 参数有函数中 item 每一项 index 对应下标 没有返回值
// 示例:
let arr15 = ["a", "b", "c", "d", "e", "f"]
arr15.forEach((item, index) => {
console.log(item, index); // item 每一项 index 对应下标
})
// 15、 map 也是数组的遍历方法 和forEach 不同的是 会让数组的每一个元素让函数去处理 返回一个新的数组
let arr16 = ["a", "b", "c", "d", "e"]
arr16.map((item, index) => {
console.log(item, index);// item 每一项 index 对应下标
})
// 15、 reduce 数组的每一项累加 接受一个函数作为累加器 对每个值累加 最后得到一个值
// 示例:
let arr17 = [1, 2, 3, 4, 5]
console.log(arr17.reduce((a, b) => a + b)); // 用reduce对数组每一项累加 得到值15
// 16、 find 数组筛查 返回满足条件的第一个值 找不到返回false 参数为查找的值
// 示例:
let arr18 = [1, 2, 3, 4, 5]
console.log(arr18.find((item) => item > 3)); // 查找数组中大于3的第一个值 返回4
// 16、 findIndex 同find 但是返回的值是符合条件的第一个值的下标
let arr19 = [0, 1, 2, 3, 4]
console.log(arr19.findIndex((item) => item > 2)); // 查找大于2的第一个值的下标 返回3
// 17、 toString 将数组转换成字符串
let arr20 = ["h", "e", "l", "l", "o", "w"]
console.log(arr20.toString()); // 得到字符串 h,e,l,l,o,w
// 18、some 判断数组中有没有符合条件的项 有就返回true 如果都没有才返回false
let arr21 = [1, 2, 3, 4, 5]
console.log(arr21.some((item) => item > 2)); // 判断数组中有没有大于2的项 返回true
// 19、every 判断数组中的项是否都满足要求 满足返回true 否则返回false
let arr22 = [2, 3, 4, 5, 6]
console.log(arr22.every((item) => item > 1)); //判断是不是都大于1 返回true
// 20、filter 把数组中符合条件的元素返回到一个新数组
let arr23 = [1, 2, 3, 4, 5, 6]
console.log(arr23.filter((item) => item > 2)); // 判断数组中大于2的值返回 [3,4,5,6]