js的Array对象常用方法小结

以下只是大部分的常用方法,是一些比较常用的,如果还有其它的,我还会在进行补充

    <script>
		// 箭头函数如果只有只有一个参数,可以不写括号,如果函数体只有一行代码,花括号和return可以省略
        var a1 = [1, 234, 'sdf', 'vd', 'zxc', 'few', 'asd', 'q', 'qs']
        var num = [46, 16, 48, 1, 6, 448, 8, 16, , 412, 0, -45, 1]
        var a3 = 111
        var sum = 0

        1======concat用于连接两个或多个数组。不会改变现有的数组,
        var aa = a1.concat(a3)
        console.log(aa);//(10) [1, 234, "sdf", "vd", "zxc", "few""asd", "q", "qs", 111]

        2========every,有没有return都可以检测数值元素的每个元素是否都符合条件
        var aa = num.every((item, index) => {
            item > -111
        })
        console.log(aa); //true

        3===========filter,必须要加return,检测数值元素,并返回符合条件所有元素的数组。
        var aa = num.filter((item, index) => {
            return item > 0
        })
        console.log(aa); //(10) [46, 16, 48, 1, 6, 448, 8, 16, 412, 1]

        4========== find必须要加return,返回符合测试条件的第一个数组元素值,如果没有符合条件的则返回 undefinedvar aa = num.find((item, index) => {
            return item < 10
        })
        console.log(aa);//1

        5==========findIndex必须要加return,返回符合测试条件的第一个数组元素索引,如果没有符合条件的则返回 -1var aa = num.findIndex((item, index) => {
            return item < 10
        })
        console.log(aa); //3

        6==========forEach并不改变原数组,遇到了return就会跳过本次循环,类似于continue
        num.forEach((item, index) => {
            // console.log(item, index);
            if (index > 1) {
                return
            }
            sum += item
            console.log(item); //46  16
        })
        console.log(sum); //62
        注:以下情况可以使用forEach改变原数组,详情见下图

        var num = [46, 16, 48, 1, 6, 448, 8, 16, , 412, 0, -45, 1]
        7==========includes,第二个为索引值,从索引值的地方开始查找
        var aa = num.includes(16, 2)
        console.log(aa); //true

        8==========indexOf,第二个为索引值,从索引值的地方开始查找,返回 item 的第一次出现的位置,没有就返回-1
        var aa = num.indexOf(16, 1)
        console.log(aa); //1

        9==========join,返回一个拼接好的字符串,默认返回的是以逗号分割的字符串
        var aa = num.join()
        console.log(aa); //46,16,48,1,6,448,8,16,,412,0,-45,1
        var bb = num.join(',')
        console.log(bb); //46,16,48,1,6,448,8,16,,412,0,-45,1
        var cc = num.join('')
        console.log(cc); //461648164488164120-451
        var dd = num.join('+')
        console.log(dd); //46+16+48+1+6+448+8+16++412+0+-45+1

        10==========lastIndexOf()返回它最后出现的位置(与IndexOf()用法相同,结果相反)

        11==========map() 不会改变原始数组,他会返回一个新数组,必须加return
        var aa = num.map((item, index) => {
            return item * 2
        })
        console.log(aa); //(13) [92, 32, 96, 2, 12, 896, 16, 32, empty, 824, 0, -90, 2]
        map是专门用来对数组中的每一项进行运算的,而不是用来判断,如果想要对数组进行过滤应该采用filter
        var aa = [1, 2, 5, 7, 4, 5]
    	  let bb = aa.map(item => item > 2)
    	  console.log(bb);//(6) [false, false, true, true, true, true]

        var num = [46, 16, 48, 1, 6, 448, 8, 16, , 412, 0, -45, 1]
        12==========reverse()将数组翻转,他会改变原数组
        var aa = num.reverse()
        console.log(aa); //(13) [1, -45, 0, 412, empty, 16, 8, 448, 6, 1, 48, 16, 46]
        console.log(num); //(13) [1, -45, 0, 412, empty, 16, 8, 448, 6, 1, 48, 16, 46]

        13==========slice()从已有的数组中返回选定的元素,有头无尾
        var aa = num.slice(1, 3)
        console.log(aa); //(2) [16, 48]
        var bb = num.slice(-3, -1)
        console.log(bb); //(2) [16, 48]//(2) [0, -45]
        var dd = num.slice(1)
        console.log(dd); //(12) [16, 48, 1, 6, 448, 8, 16, empty, 412, 0, -45, 1]

        14==========some()检测数组中的元素是否满足指定条件,如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。佛欧泽返回false,它和every相反
        var aa = num.some((item, index) => {
            return item > -111
        })
        console.log(aa); //true

        var num = [46, 16, 48, 1, 6, 448, 8, 16, , 412, 0, -45, 1]
        15==========sort()对数组的元素进行排序,他会改变原数组
        var aa = num.sort(function(a, b) {
            return a - b//按照升序排列
        });
        var aa = num.sort() //默认按照升序排列
        console.log(aa); //(13) [-45, 0, 1, 1, 6, 8, 16, 16, 46, 48, 412, 448, empty]
        console.log(num); //(13) [-45, 0, 1, 1, 6, 8, 16, 16, 46, 48, 412, 448, empty]

        16==========splice(index,num,element1,element2...)用于添加或删除数组中的元素,这种方法会改变原始数组。第一个参数为索引,第二个为个数,意为:在索引为index的地方,删除num个元素,并在索引为index的后面,添加element1,element2...
        var aa = num.splice(2, 2) //删除元素
        console.log(aa); //(2) [48, 1]

        var aa = num.splice(2, 0, 9999) //添加元素
        console.log(aa); //[]
        console.log(num); //(14) [46, 16, 9999, 48, 1, 6, 448, 8, 16, empty, 412, 0, -45, 1]

        var aa = num.splice(2, 2, 9999, 8888) //删除并添加元素
        console.log(aa); //(2) [48, 1]
        console.log(num); //(13) [46, 16, 9999, 8888, 6, 448, 8, 16, empty, 412, 0, -45, 1]

        var num = [46, 16, 48, 1, 6, 448, 8, 16, , 412, 0, -45, 1]
    </script>
</body>

</html>

一下两张图是对forEach的补充
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

白嫖leader

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

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

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

打赏作者

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

抵扣说明:

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

余额充值