1.concat() 合并多数组不会改变原数组,返回一个新数组
let arr = [1,2,1]
let arr1 = [20,20,2]
let arr2 = arr.concat(arr1);
arr = arr.concat(arr1);
2.unshift(元素,元素2…) 数组的头部添加
let arr = [100,200];
arr.unshift(0) //[0,100,200]
3.shift()数组头部删除
let arr = [100,200];
arr.shift() //[200]
4.push(元素,元素1…)数组尾部添加
let arr = [100,200];
arr.push(300) //[100,200,300]
5.pop()数组尾部删除
let arr = [100,200];
arr.pop(); //[100]
6.splice()splice(起点索引,选中元素个数/长度,新增元素1,新增元素2)任意位置的删除任意位置的添加元素替换任意元素.
let arr = [100,2,0,201,21,52,15,15,1];
//1. 删除值为0 的元素--[任意位置的删除]
// arr.splice(2,1)
// arr.splice(5,1)
// arr.splice(6,2 )
//2.任意位置的添加元素
// 新增的元素 在起始索引的前面新增
// arr.splice(5,0,30)
// console.log(arr);
// 3. 替换任意元素
arr.splice(2,1,100)
console.log(arr);
综合上述
let arr = [100,200,300];
//请在数组的末尾添加元素 400
arr.push(400); // [100,200,300,400]
//请在数组的头部添加元素 0
arr.unshift(0) // [0,100,200,300,400]
//请在 元素100 与元素200之间 添加新元素 150
arr.splice(2,0,150) // [0,100,150,200,300,400]
//请通过splice 方法给数组的 头部添加元素: -100
arr.splice(0,0,-100) // [-100,0,100,150,200,300,400]
//请通过 splice 方法 给数组的 末尾 添加元素: 500
//arr.splice(7,0,500)
arr.splice(arr.length,0,500) //[-100,0,100,150,200,300,400,500]
//请通过splice 方法 将数组中 元素值==0的元素 替换为 1000
arr.splice(1,1,1000) //[-100,1000,100,150,200,300,400,500]
7.forEach数组专属的遍历。记住e必须是大写
数组.forEach(function(value,index){
//value : 当前元素
//index: 当前元素对应的索引
})
方法所用
let arr = [100,21,251,51,51,5,1]
let arr1 =[];
// 将上面数组所有元素值+1 并放到新数组 arr1中
//for 循环
for(let i=0;i<arr.length;i++){
// arr1.push(arr[i]+1)
// arr1[i] = arr[i]+1
}
//forEach
let arr = [100,21,251,51,51,5,1]
let arr1 =[];
// 将上面数组所有元素值+1 并放到新数组 arr1中
//for 循环
for(let i=0;i<arr.length;i++){
// arr1.push(arr[i]+1)
// arr1[i] = arr[i]+1
}
//forEach
arr.forEach(function(item,index){
//arr1.push(item+1)
// arr1[index] = item+1;
})
8.map()遍历数组返回新数组
let arr = [100,200,300]
let arr1 =arr.map(function(item,index){
// 新数组的每一个元素
return item+1;
})
log//101,201,301
9.indexOf()查找数组中是否存在该元素,如果存在,返回该元素第一次出现的位置的索引如果不存在,返回-1。
let arr = [100,200,300,5,200]
arr.indexOf(200) //1
arr.indexOf(1000) //-1
10.lastIndexOf()查找数组中是否存在改元素,如果存在,返回该元素 最后一次 出现的位置的索引。
let arr = [100,200,300,5,200]
arr.lastIndexOf(200) //4
arr.lastIndexOf(1000) //-1
//请将该数组中只出现了一次的元素 放到一个新数组中
let arr = [100,100,200,4,5,6,-1,4,6]
// 200 5 -1
// 如果第一次出现的位置和最后一次出现的位置 相等 该元素只出现了一次
let arr1 = [];
for(let i=0;i<arr.length;i++){
//先获取到每一个元素 arr[i]
//通过每一个元素 找到其 第一次和最后一次出现的位置 进行比对
if(arr.indexOf([i]) == arr.lastIndexOf(arr[i]) ){
arr1.push(arr[i])
}
}
//方案二
arr.forEach(function(item){
if(arr.indexOf(item) == arr.lastIndexOf(item)){
arr1.push(item)
}
})
11.find()查找数组中是否存在 满足条件的 元素,如果存在,返回第一次出现满足条件的 该元素如果不存在,返回 undefined。
let xx = 数组.find(function(item,index){
return 条件;
})
let nums = [40,50,60,77,88,99,100]
//请查找除 第一个及格的分数
let num = nums.find(function(item,index){
return item>=60;
})
12.findIndex()查找数组中是否 有 满足条件的元素如果找到满足条件的元素,返回满足条件第一个元素的索引如果找不到 返回 -1
let xx = 数组.findIndex(function(item,index){
return 条件;
})
let nums = [40,50,60,77,88,99,100]
//请查找出 第一个及格的分数
let num = nums.findIndex(function(item,index){
return item>=60;
})
let ages = [20,21,22,23,24,25,26]
// 请找出 24岁 出现的索引
let age = ages.indexOf(24) //
let age = ages.lastIndexOf(24) //
let age = ages.findIndex(function(item,index){
retrun item==24;
})
//请找出大于等于24岁的第一个数字的索引
let age = ages.findIndex(function(item,index){
retrun item>=24;
})
indexOf 能够实现的功能 findIndex 肯定能实现
findIndex 实现的功能, indexOf 只能实现其条件为 ==
13.filter()过滤查找数组中 满足条件的元素返回满足条件的所有元素新数组找不到返回一个空数组.
let nums1 = nums.filter(function(item,index){
return 条件;
})
//返回 所有成绩 未及格的成绩列表
let nums = [40,50,60,77,55,99,100]
let nums1 = nums.filter(function(item,index){
return item<60;
})
//返回所有未成年同学的信息列表
let userList = [
{name:'张三',age:25,num:100},
{name:'李四',age:15,num:40},
{name:'王五',age:20,num:50},
{name:'xxxx',age:10,num:70},
]
//返回所有未成年同学的信息列表
let userList1 = userList.filter(function(item,index){
return item.age<18;
})
//返回所有未成年及格 同学的信息列表
let userList2 = userList.filter(function(item,index){
return item.age<18 && item.num>=60;
})
14.join-转换将数组 转换为 字符串,并且以 分割符 进行分割,返回字符串.
数组.join('分割符')
let arr = ['张三','里斯','王麻子']
let str = arr.join('-');//张三-里斯-王麻子
- split 将字符串转换为 数组,并以分割符分割,返回新数组
let str = '张三,里斯,王麻子'
let arr = str.split(',') //['张三','里斯','王麻子']
// 请将一个单词所有字母提取到 一个数组中
let str1 = 'HELLO'; //数组元素 个数多少个 转换时分隔符应该写什么(只有引号)?
let arr1 = str1.split('');//['H', 'E', 'L', 'L', 'O']
15.includes-包含:数组与字符串都可使用查看数组 是否包含 某个元素包含 返回 true不包含 返回false
let bool = 数组.includes(元素)
let arr = ['张麻子','黄四郎','马邦德']
//请查看该数组中 有没有叫 黄四郎的人
let bool = arr.includes('黄四郎')
let str = '你好吖,我是源码时代的小源'
/*请查看该字符串中是否出现了 源码时代 */
let bool = str.includes('源码时代');
16.slice -截取数组和字符串 通用方法截取 数组元素,返回一个新数组 规则:左闭右开(包含起点,不包含终点)索引值可以为负数倒数第几个;
数组.slice(起点索引) #从起点索引开始 截取到最后
数组.slice(起点索引,终点索引) # 包含起点 不包含终点 的新数组
let arr = [100,320,2,152,15,45]
let arr1 = arr.slice(1,3) //[320,2]
let arr2 = arr.slice(-3,-1) // [152,15]
console.log(arr1);
console.log(arr2);
17.reverse-反向将数组的元素反向输出—直接修改原数组;
let arr= [100,200,300,400]
arr.reverse()
console.log(arr); //[400, 300, 200, 100]
18.sort-排序将原数组 进行排序输出–直接修改 原数组
字符 0====48 这是ASCII码表
字符 A ===65
字符 a ===97
//将字母数组 进行从小到大排序-ASCII
let arr = ['a','8','A','B','C','b','AA']
arr.sort();// ['8','A','AA','B','C','a','b' ]
//将数字数组 进行从小到大排序
let arr = [1,5,15,5,44,51,2,12,15,45,451,1,2];
// a:前一个数字 小的一个数字(小的数字)
// b :后一个数字 大的一个数字(大的数子)
arr.sort(function(a,b){
return a - b;
})
/*按照成绩 从小到大排序*/
let userList = [
{name:'张三',age:25,num:100},
{name:'李四',age:15,num:40},
{name:'王五',age:20,num:50},
{name:'xxxx',age:10,num:70},
]
//a: 前一个元素 a.num 小的一个数字
//b: 后一个元素 b.num 大的一个数字
userList.sort(function(a,b){
return a.num - b.num;
})
19.flat-拉平将多维数组转换 1维数组–返回一个新数组
数组.flat(转换的层数) //3维数组 拉平为2维数组 1
数组.flat(Infinity) //将多维数组 拉平为 1维数组
let arr= [
[1,2],[1,2,3],[[[[55]],[[[555]],[100]],[[[6]]]]]
]
let arr1 = arr.flat(Infinity)
console.log(arr1); // [1, 2, 1, 2, 3, 55, 555, 100, 6]
20. every 每一个所有的元素 都满足条件 返回true只要有一个元素 不满足条件 返回false
let arr = [20,18,30,45,15]
// 年龄数组 中是否都已经成年
let bool = arr.every(function(item,index){
return item>=18;
}) //false
21.some 一些只要有一个 满足条件 返回true所有元素都 不满足条件返回 false
let arr = [20,18,30,45,15]
// 年龄数组 中是否有成年人
let bool = arr.some(function(item,index){
return item>=18;
}) //true
22.reduce 求平均数
pre:上一个pret
next:下一个
index: 可选。当前元素的索引。
arr: 可选。当前元素所属的数组对象。
getArrAvg(): number {
let num = this.arr.reduce((pre, next, index, arr) => {
if(index==arr.length-1){
如果加完了求出平均数
return (pre + next)/arr.length;
}
return pre + next; //求和
}, 0 求和默认值0 );
return num;
}