4、数组的方法
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
Array.isArray()
at()
- 可以根据索引获取数组中的指定元素
- at可以接收负索引作为参数
concat()
- 用来连接两个或多个数组
- 非破坏性方法,不会影响原数组,而是返回一个新的数组
<script>
console.log(Array.isArray({name:'孙悟空'}))//false
console.log(Array.isArray([1,2,3]))//true
const arr = ['孙悟空','猪八戒','沙和尚','唐僧','白骨精']
console.log(arr.at(-2))//负数是从-1开始的,就是倒数第二个
console.log(arr[arr.length-2])//两者相同
const arr2 = ['白骨精','蜘蛛精','玉兔精']
let result = arr.concat(arr2,['牛魔王的','铁扇公主'])
console.log(result)//相当于是合并了arr和arr2两个数组,顺便添加了两个值
</script>
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>