今天来列举一下数组常用的api以及详解:
splice
forEach
- filter
- some
- every
- reduce
- find
- findIndex
- push
- unshift
- pop
- shift
- join
- reverse
- sort
splice是数组中一个比较强大的方法 为什么说它强大呢?splice可以根据索引删除元素 也可以添加元素在某个索引之后 也可以替换某个元素 所以我称它为数组最强大的方法 下面就给大家举例子来说明
1---splice 根据索引删除元素
、 splice删除元素返回值是被删除的元素 并且会改变原数组!!!
<script>
let arr=['张三','李四','王五','赵六']
// 1.1splice-- 根据索引删除元素arr.splice(要删除的位置,删除几个,需要替换的元素)
console.log(arr.splice(0,1)); // 返回值是被删除的元素['张三']
console.log(arr); //['李四','王五','赵六']
</script>
1.1---splic根据索引添加元素
let arr=['张三','李四','王五','赵六']
// 1.1splice-- 根据索引删除元素arr.splice(要删除的位置,删除几个,需要替换的元素)
console.log( arr.splice(1,0,'赵六')) //[]
console.log(arr); //['张三', '赵六', '李四', '王五', '赵六']
如果需要使用splice删除元素 直接把第二个参数写为0 代表不删除元素
1.2--splce删除并替换元素
只需要将第三个参数---需要替换的元素加上即可
<script>
let arr=['张三','李四','王五','赵六']
// 1.1splice-- 根据索引删除元素arr.splice(要删除的位置,删除几个,需要替换的元素)
arr.splice(0,1,'张三丰')
console.log(arr); // ['张三丰', '李四', '王五', '赵六'] 此时索引为0的'张三'已经被我们删除并替换成了'张三丰'
</script>
2.--forEach 遍历迭代数组
forEach在我们平常使用的也是非常多的 我们首先来了解一下forEach的语法格式:
array.forEach(callback(currentValue, index, array){})
- callback:为数组中每个元素执行的函数
- currentValue(当前值):正在处理的当前元素。
- index(索引):正在处理的当前元素的索引。
- array:forEach()方法正在操作的数组。 arr.forEach(item=>console.log(item))
用法:遍历数组 会得到每一项值 如果是通过后台请求的数据也可以拿到
<script>
//array.forEach(callback(currentValue, index, array){})
let arr=['张三','赵1','吴2']
//循环数组获取到了数组每一项和数组的每一项的索引
arr.forEach((item,index)=>console.log(item,index))
</script>
注意点 forEach的返回值是undefined’
3.filter---筛选数组
- filter返回值是一个新数组
- filter 里面 可以直接 return 筛选的条件
代码演示
<script>
let arr=[14,99,63]
/*
item:数组每一项
index:数组每一项的索引
array:数组本身
*/
let newArr= arr.filter((item,index,array)=>{
return item>=70 //63
})
console.log(newArr); // 返回了筛选后的新数组[99]
</script>
4. some---判断数组中的某一项是否满足条件
- some会遍历数组 判断某一项是否满足条件 如果true 就会立即终止循环 后续代码将不会被执行
- some方法会返回一个布尔值
代码演示
<script>
let arr=[14,99,63]
let flag=arr.some(item=>{
//如果满足条件some会立即终止循环 不会执行后面的代码
return item>=50
})
console.log(flag); //true
</script>
5.every---判断数组中的值是否满足条件
- every和some方法非常相似 但是他们的最大的区别就在于 some循环数组如果某一项满足条件时就会退出循环 不在判断后面的元素 但是 every循环数组判断数组里面的每一项的值都满足条件才会返回true 代码演示
- 只要某一个元素不满足条件就会返回false
<script>
let arr=[14,99,63]
let flag=arr.every(item=>{
return item>14
})
console.log(flag); //false
</script>
6.reduce---计算数组中每一项加起来的总和
- reduce方法用来求数组每一项的累加和
- 语法 ----arr.reduce( (sum,item)=>{ return sum+=item },0 )
- 形参1-sum:初始化的累加器
- 形参2-item :数组的每一项
- 参数3--0:累加器的初始值
代码:
<script>
let arr=[1,2,3,4,5]
//参数1 sum:初始的求和器
//参数2:item:数组的每一项
let sum= arr.reduce((sum,item)=>sum+item,0)
console.log(sum);
</script>
注意点:回调函数如果只有一个返回值 大括号可以省略 这里 sum+item相同于sum+=item
如果加了大括号 必须return 而且必须写上sum+=item
7.find---查找数组中第一个满足条件的值
- find返回的是第一次满足条件的那个元素
- 如果第一次满足条件 则会终止循环 只返回第一个满足条件的元素
代码:
<script>
let arr=[1,2,3,6]
let index= arr.find(item=>{
return item>=3
})
//返回第一个满足条件的元素
console.log(index); // 3
</script>
8.findIndex---查找数组中第一个满足条件的索引值
- findIndex 和find方法有雷同 他们都找到第一个满足条件的值 然后不在继续循环数组
- findIndex方法 返回的是第一个满足条件元素的索引号
代码:
<script>
let arr=[1,2,3,6,3]
let index= arr.findIndex(item=>{
return item==3
})
//返回第一个满足条件元素的索引号
console.log(index); // 2
</script>
9-12 数组的添加与删除方法
- push 在数组末尾添加元素 , 返回新数组的长度
- unshift 在数组开头添加元素 , 返回新数组的长度
- pop 删除数组第一个元素 , 返回被删除的元素
- shift 删除数组中最后一个元素,返回被删除的元素
代码演示:
<script>
let arr=[1,2,3,6,3]
//push在数组末尾添加元素 返回新数组的长度
console.log(arr.push(1)); //6
//unshift 在数组开头添加元素 返回值新数组的长度
console.log(arr.unshift(2)); //7
//pop 删除数组开头的元素 返回被删除的元素
console.log(arr.pop()); //1
//shift 删除数组末尾的元素 返回被删除的元素
console.log(arr.shift()); //2
console.log(arr);
</script>
13.join---将数组分隔为字符串
- join(参数) 参数---传入你想使用什字符串来分隔数组 默认是逗号
代码:
<script>
let arr=[1,2,3,6,3]
// join(参数) 参数---使数组以什么进行分隔 默认是逗号
console.log(arr.join()); //1,2,3,6,3
console.log(arr.join(' '));//12363
</script>
14.reverse--翻转数组
- 将数组进行翻转
<script>
let arr=[1,2,3,6,3]
console.log(arr.reverse()); //[3, 6, 3, 2, 1]
</script>
15.sort---将数组进行升序排序 (由小到大)
代码:
<script>
let arr=[1,2,3,6,3]
console.log(arr.sort());//[1, 2, 3, 3, 6]
</script>