<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>
这段代码演示了JavaScript中数组的常见操作,包括截取、增删改、合并、转换为字符串、查找、遍历、映射、过滤和累计等操作。以下是每个操作的具体解释:
1. `slice(start, end)`:截取数组中的一段元素,返回一个新的数组,不会改变原数组。`start`表示开始截取的位置,`end`表示结束截取的位置,但不包括该位置的元素。
2. `splice(start, deleteCount, item1, item2, ...)`:在数组中任意位置进行增删改,返回被删除的元素数组。`start`表示开始删除或插入的位置,`deleteCount`表示需要删除的元素个数,`item1, item2, ...`表示需要插入的元素。
3. `concat(array1, array2, ...)`:将两个或多个数组合并成一个新数组,不会改变原数组。
4. `join(separator)`:将数组中的元素转换为字符串,并使用`separator`作为分隔符连接它们。
5. `indexOf(searchElement, fromIndex)`:在数组中查找指定元素,并返回其第一次出现的位置。如果找不到,则返回-1。
6. `lastIndexOf(searchElement, fromIndex)`:在数组中查找指定元素,并返回其最后一次出现的位置。如果找不到,则返回-1。
7. `forEach(callbackFn)`:对数组中的每个元素执行指定的函数。
8. `map(callbackFn)`:创建一个新数组,其中包含原数组中的每个元素经过指定函数处理后的结果。
9. `filter(callbackFn)`:创建一个新数组,其中包含原数组中符合指定条件的元素。
10. `reduce(callbackFn, initialValue)`:对数组中的元素进行累计计算,返回一个结果。`callbackFn`表示累计计算的函数,`initialValue`表示初始值。
需要注意的是,上述数组操作都是非破坏性操作,即不会改变原数组,而是返回一个新的数组或其他结果。如果需要改变原数组,可以使用相应的破坏性操作,例如`push`、`pop`、`shift`和`unshift`等。
标签:arr,console,log,brr,value,数组 From: https://www.cnblogs.com/dadaya123/p/17478486.html