在JavaScript中数组的常见方法

<script>
        // push():将一个或多个元素添加到数组的末尾。
        // pop():从数组末尾删除并返回一个元素。
        // shift():从数组开头删除并返回一个元素。
        // unshift():将一个或多个元素添加到数组的开头。
        // splice():从数组中添加或删除元素。
        // slice():返回一个新数组,其中包含从原始数组中提取的元素。
        // concat():将一个或多个数组合并为一个新数组。
        // indexOf():返回指定元素在数组中第一次出现的索引。
        // lastIndexOf():返回指定元素在数组中最后一次出现的索引。
        // join():将数组中的所有元素转换为一个字符串,并使用指定的分隔符将它们连接起来。
        // reverse():反转数组中的元素的顺序。
        // sort():按照升序或降序对数组中的元素进行排序。
        // filter():返回一个新数组,其中包含符合指定条件的元素。
        // map():返回一个新数组,其中包含对每个元素执行指定操作后的结果。
        // reduce():将数组中的所有元素组合为单个值。
        let array1=[1,3,6,34,45,65,12,32,43,65,534]
        console.log('原数组');
        console.log(array1);//[1, 3, 6, 34, 45, 65, 12, 32, 43, 65, 534]
        
        //增加数组push()
        //尾插法
        console.log('增加数组push()');
        array1.push([1,2,12,3])
        console.log(array1);//[1, 3, 6, 34, 45, 65, 12, 32, 43, 65, 534, [1,2,12,3]]

        //增加数组unshift()
        //头插法
        console.log('增加数组unshift()');
        array1.unshift(0)
        console.log(array1);//[0, 1, 3, 6, 34, 45, 65, 12, 32, 43, 65, 534, [1,2,12,3]]

        //删除数组pop()
        //尾删法
        console.log('删除数组pop()');
        let last=array1.pop()
        console.log(last);//[1, 2, 12, 3]
        console.log(array1);//[0, 1, 3, 6, 34, 45, 65, 12, 32, 43, 65, 534]

        //删除元素shift()
        //头删法
        console.log('删除元素shift()');
        let first=array1.shift()
        console.log(first);//0
        console.log(array1);//[1, 3, 6, 34, 45, 65, 12, 32, 43, 65, 534]
        
        //splice():从数组中添加或删除元素。
        //array.splice(start, deleteCount, item1, item2, ...)
        console.log('splice():从数组中添加或删除元素。');
            //splice()删除元素
            console.log('=====');
            console.log(array1);//[1, 3, 6, 34, 45, 65, 12, 32, 43, 65, 534]
            //表示从下标为1的元素开始删除,删除2个元素
            array1.splice(1,2)
            console.log(array1);//[1, 34, 45, 65, 12, 32, 43, 65, 534]

            //splice()添加元素
            console.log('=====');
            console.log(array1);//[1, 34, 45, 65, 12, 32, 43, 65, 534]
            //表示从下标为2的位置开始添加1.1,1.5
            array1.splice(2,0,1.1,1.5)
            console.log(array1);//[1, 34, 1.1, 1.5, 45, 65, 12, 32, 43, 65, 534]

            //splice()替换元素
            console.log('=====');
            console.log(array1);//[1, 34, 1.1, 1.5, 45, 65, 12, 32, 43, 65, 534]
            //表示从下标为2的位置开始替换2个元素,替换元素为2.2,2.4,2.5,当实际替换个数超过参数替换个数时,
            //默认还是会将2.5插入,可以理解数组先执行了splice(2,2)操作,再执行splice(2,0,2.2,2.4,2.5)
            //上面理解纯属个人的理解,真正执行流程见官方文档
            array1.splice(2,2,2.2,2.4,2.5)
            console.log(array1);//[1, 34, 2.2, 2.4, 2.5, 45, 65, 12, 32, 43, 65, 534]

        //slice():返回一个新数组,其中包含从原始数组中提取的元素
        console.log('slice():返回一个新数组,其中包含从原始数组中提取的元素');
        console.log(array1);//[1, 34, 2.2, 2.4, 2.5, 45, 65, 12, 32, 43, 65, 534]
        //从array1数组中的下标为1开始取,取3-1=2个元素
        //生成一个新的数组,对原数组没有影响
        let sliced = array1.slice(1, 3);
        console.log(sliced);//[34, 2.2]
        console.log(array1);//[1, 34, 2.2, 2.4, 2.5, 45, 65, 12, 32, 43, 65, 534]

        //concat():将一个或多个数组合并为一个新数组。
        console.log('concat():将一个或多个数组合并为一个新数组。');
        let arr1 = [1, 2];
        let arr2 = [3, 4];
        let merged = arr1.concat(arr2);
        console.log(merged); // [1, 2, 3, 4]

        //indexOf():返回指定元素在数组中第一次出现的索引。
        console.log('indexOf():返回指定元素在数组中第一次出现的索引');
        console.log(array1);//[1, 34, 2.2, 2.4, 2.5, 45, 65, 12, 32, 43, 65, 534]
        //返回元素在数组第一次出现的索引
        let index=array1.indexOf(65);//6
        console.log(index);

        //lastIndexOf():返回指定元素在数组中最后一次出现的索引。
        console.log('lastIndexOf():返回指定元素在数组中最后一次出现的索引。');
        console.log(array1);//[1, 34, 2.2, 2.4, 2.5, 45, 65, 12, 32, 43, 65, 534]
        //返回元素在数组第一次出现的索引
        let lastIndex=array1.lastIndexOf(65);
        console.log(lastIndex);//10

        //join():将数组中的所有元素转换为一个字符串,并使用指定的分隔符将它们连接起来。
        console.log('join():将数组中的所有元素转换为一个字符串,并使用指定的分隔符将它们连接起来。');
        console.log(array1);//[1, 34, 2.2, 2.4, 2.5, 45, 65, 12, 32, 43, 65, 534]
        //将数组用-连接返回一个字符串,原数组不影响
        let str=array1.join('-');
        console.log(str);//1-34-2.2-2.4-2.5-45-65-12-32-43-65-534
        console.log(array1);//[1, 34, 2.2, 2.4, 2.5, 45, 65, 12, 32, 43, 65, 534]

        //reverse():反转数组中的元素的顺序。
        console.log('reverse():反转数组中的元素的顺序。');
        console.log(array1);//[1, 34, 2.2, 2.4, 2.5, 45, 65, 12, 32, 43, 65, 534]
        //反转数组,直接对数组进行操作
        array1.reverse()
        console.log(array1);//[534, 65, 43, 32, 12, 65, 45, 2.5, 2.4, 2.2, 34, 1]

        //sort():按照升序或降序对数组中的元素进行排序。
        console.log('sort():按照升序或降序对数组中的元素进行排序。');
        console.log(array1);//[534, 65, 43, 32, 12, 65, 45, 2.5, 2.4, 2.2, 34, 1]
        // 默认按照 Unicode 编码进行排序
        //小数点会当做字符串处理,所以会出现排序失败
        array1.sort()
        console.log(array1);//[1, 12, 2.2, 2.4, 2.5, 32, 34, 43, 45, 534, 65, 65]
        //正确做法

            //升序
            console.log('升序');
            array1.sort((a, b)=>{
                return a - b
            })
            console.log(array1);//[1, 2.2, 2.4, 2.5, 12, 32, 34, 43, 45, 65, 65, 534]

            //降序
            console.log('降序');
            array1.sort((a, b)=>{
                return b - a
            })
            console.log(array1);//[534, 65, 65, 45, 43, 34, 32, 12, 2.5, 2.4, 2.2, 1]

        //filter():返回一个新数组,其中包含符合指定条件的元素。
        console.log('filter():返回一个新数组,其中包含符合指定条件的元素。');
        console.log(array1);//[534, 65, 65, 45, 43, 34, 32, 12, 2.5, 2.4, 2.2, 1]
        //原数组不变,生成一个满足被2整除条件的新数组
        let filter = array1.filter(num => num % 2 === 0)
        console.log(filter);//[534, 34, 32, 12]
        console.log(array1);//[534, 65, 65, 45, 43, 34, 32, 12, 2.5, 2.4, 2.2, 1]

        //map():返回一个新数组,其中包含对每个元素执行指定操作后的结果。
        console.log('map():返回一个新数组,其中包含对每个元素执行指定操作后的结果。');
        console.log(array1);//[534, 65, 65, 45, 43, 34, 32, 12, 2.5, 2.4, 2.2, 1]
        //原数组不变,生成一个每个元素都 x2 操作的新数组
        let mapped = array1.map(num => num * 2);
        console.log(mapped);//[1068, 130, 130, 90, 86, 68, 64, 24, 5, 4.8, 4.4, 2]
        console.log(array1);//[534, 65, 65, 45, 43, 34, 32, 12, 2.5, 2.4, 2.2, 1]

        // reduce():将数组中的所有元素组合为单个值。
        console.log('reduce():将数组中的所有元素组合为单个值。');
        console.log(array1);//[534, 65, 65, 45, 43, 34, 32, 12, 2.5, 2.4, 2.2, 1]
        //acc代表累加器的值,num代表正在操作的值,0代表初始的值
        let sum = array1.reduce((acc,num) => {
           return acc + num
        }, 0)
        console.log(sum);//838.1
        console.log(array1);//[534, 65, 65, 45, 43, 34, 32, 12, 2.5, 2.4, 2.2, 1]
    </script>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Hz没头脑

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

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

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

打赏作者

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

抵扣说明:

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

余额充值