<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
</html>
<script>
const arr=['a','b','c','d','e','f','g','h']
//后面添加push 删pop 前面添加unshift 删shift
//slice 截取
console.log(arr.slice(1,3)) //返回一个新数组,从1开始截取,到3结束,不包括3
console.log(arr) //原数组不变
//splice 功能非常强大,可以在任意位置增删改
//改
arr.splice(1,4,1,2,3) //从1开始,删除4个,用后面的内容去填充替换
console.log(arr)
//删
arr.splice(1,4)
console.log(arr)
//增
arr.splice(1,0,'b','c','d','e','f')
console.log(arr)
//concat 将两个或多个数组合并成一个新数组
const brr=[1,2,3,4,5,6,7,8]
console.log(arr.concat(brr))
//join 将数组转换为字符串
const joinStr=arr.join('-')//括号里为空,默认用逗号隔开
console.log(joinStr)
//indexOf 在数组里,查找某个元素是否存在,如果不存在,则返回-1,存在则返回第一个值的索引index
console.log(arr.indexOf('c'))
console.log(arr.indexOf('i'))
//lastIndexOf 某个元素在元素中最后一次出现的位置,用法同上
//forEach 对数组中每个元素执行操作
brr.forEach((value,index)=>{
//console.log(value*2,index)
brr[index]=value*2
})
console.log(brr)
//map() 创建一个新数组,其中包含原数组中的每个元素经过函数处理后的结果
console.log(arr.map((value,index)=>{
return value*2
}))
//简写
console.log(brr.map(value => value/2)) //箭头函数的参数如果有且仅有一个,括号可省略,语句如果只要有一条,花括号也可以省略,且自动return
console.log(brr)
//filter 过滤
console.log(brr.map(value => value/2).filter(value =>value%2===0)) //filter括号里的函数,必须return一个条件(条件就是返回一个布尔值的表达式)
//reduce 累加
console.log(brr.map(value => value/2).filter(value =>value%2===0).reduce((value,preResult)=>{
return preResult=preResult+value
},0))
console.log(brr.map(value => value/2).filter(value =>value%2===0).reduce((value,preResult)=>{
return preResult=preResult*value
},1))
</script>