5、对象的复制
indexOf()
- 获取元素在数组中第一次出现的索引
- 参数:
1. 要查询的元素
2. 查询的起始位置
lastIndexOf()
- 获取元素在数组中最后一次出现的位置
- 返回值:
找到了则返回元素的索引,
没有找到返回-1
join()
- 将一个数组中的元素连接为一个字符串
- ["孙悟空", "猪八戒", "沙和尚", "唐僧", "沙和尚"] -> "孙悟空,猪八戒,沙和尚,唐僧,沙和尚"
- 参数:
指定一个字符串作为连接符
slice()
- 用来截取数组(非破坏性方法)
- 参数:
1. 截取的起始位置(包括该位置)
2. 截取的结束位置(不包括该位置)
- 第二个参数可以省略不写,如果省略则会一直截取到最后
- 索引可以是负值
如果将两个参数全都省略,则可以对数组进行浅拷贝(浅复制)
<script>
let arr = ['孙悟空','猪八戒','沙和尚','唐僧','沙和尚']
let result = arr.indexOf('沙和尚',3)//4,起始位置从位置3开始的(下标为2),所以最后找到的是下标为4的
result = arr.lastIndexOf("沙和尚",3)//2,倒着找的,最后一次出现的位置为下标为2的地方
result = arr.indexOf("白骨精")
result = arr.join()//转换成字符串
result = arr.join("@_@")
result = arr.join("")//完全连接在一起了,没有逗号啥的
arr = ['孙悟空','猪八戒','沙和尚','唐僧']
result = arr.slice(0,2)
result = arr.slice(1,3)
result = arr.slice(1,-1)//到倒数第一个为止,所以只能取到倒数第二个沙和尚那
console.log(result)
</script>
6、数组的复制
如何去复制一个对象 复制必须要产生新的对象
当调用slice时,会产生一个新的数组对象,从而完成对数组的复制
<script>
const arr = ["孙悟空", "猪八戒", "沙和尚"]
// const arr2 = arr // 不是复制
// arr2[0] = "唐僧"
const arr3 = arr.slice()
// console.log(arr === arr2)
// console.log(arr2)
arr3[0] = "唐僧"
console.log(arr)
console.log(arr3)
</script>