【JavaScript】22_数组的方法,对象的复制与数组的复制

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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

名之以父

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值