前端学习第二阶段Day06

目录

1.数据类型之间存储的区别

        1.我们的存储空间分为两种

        2.数据类型之间的比较

2.函数参数传递

3.数组的常用方法

        1.push

        2.pop

        3.unshift

        4.shift

        5.splice

        6.reverse

        7.sort

        8.concat

        9.join

          10.indexOf

        11.includes

        12.slice

4.ES5常用的数组遍历的方法

        1.forEach

        2.map

        3.filter

        4.find

        5.every

        6.some

        7.reduce

5.排序

        概念:

        排序的方式:

                1.冒泡排序:

案例:

        将一列数98,78,86,59,94,100进行升序排序用sort


1.数据类型之间存储的区别

        1.我们的存储空间分为两种

                1.栈:主要存储基本数据类型的内容

                2.堆:主要存储复杂数据类型的内容

        2.数据类型之间的比较

                1.基本数据类型是值之间的比较

                2.复杂数据类型是地址之间的比较

2.函数参数传递

        在函数参数传递时,如果形参传的类型是对象,则相当于赋值,把对象存储的那个地址复制了一份给另外一个对象。无论修改哪个对象,它们的地址是一样的,所以做任何操作后,值都一样。

3.数组的常用方法

        1.push

               概念: 是用来在数组的末尾追加一个元素

                语法:

                arr.push(m)  //m为一个数

        2.pop

                 概念:是用来删除数组末尾的一个元素

                语法:

               arr.pop()//弹出

        3.unshift

                概念:是在数组的最前面添加一个元素

                语法:

        arr.unshift()

        4.shift

                概念:删除数组最前面的一个元素

                语法:

        arr.shift()

        5.splice

                概念:是截取数组中的某些内容,按照数组索引来截取

                语法:

        splice(下标,元素个数)

        splice(下标,元素个数,代替内容)

        6.reverse

                概念:是用来反转数组使用的

                语法:

                arr.reverse()

        7.sort

               概念: 是用来给数组排序的

                语法:

                arr.sort() //由高到低,排序规则是先转为字符串,使用Unicode编码

                转换排序方式为升序的解决方法【非Unicode编码的大小的比较】

        arr.sort(function(a,b){//升序

                if(a<b)

                {return -1}

                if(a==b)

                {return 0}

                if(a>b)

                {return 1}

                })

        8.concat

                概念:是把多个数组进行拼接

                语法:

                var newArr=arr.concat([4,5,6])

                //或者

                var newArr=arr.concat(arr1)

        9.join

                概念:是把数组里面的每一项内容连接起来,变成一个字符串

                语法:

                var newArr=arr.join('') //得到的是一个字符串    

          10.indexOf

                概念:用来找到数组中某一项的索引

                语法:

        var arr=[1,2,3,4]

        arr.indexOf(3)===>2

        11.includes

                概念:判断是否包含某一内容,返回Boolean类型的值

                语法:

                var arr=[1,2,3,4,5]

                var flag=arr.includes(2)===>true

        12.slice

               概念: 获取数组里一定范围的项返回新数组

                语法:

        var arr[1,2,3,4,5,5]

        arr.slice(begin,end)//左闭右开为索引号的范围

         arr.slice(0,4)==>1,2,3,4

4.ES5常用的数组遍历的方法

        匿名函数:function(){}

        1.forEach

                概念:和for循环一个作业,就是用来遍历数组的

                语法:

        arr.forEach(function(item,index,arr){})//会根据数组长度执行

        2.map

                概念:和forEach类似,只不过可以对数组中的每一项进行一个操作,返回一个新数组

                语法:

                var newArr=arr.mamp(function(item,index,arr){

                        return item--->可对其加减乘除

                        })

        3.filter

                概念:和map的使用方式类似,按照我们的条件来筛选数组

                           把原始数组中满足条件的筛选出来,组成一个新的数组返回

                语法:

                var newArr=arr.filter(function(item,index,arr){

                return item>1 //筛选arr中大于1的数据返回给newArr

                })

        4.find

                概念:遍历数组返回数组中第一个满足条件的项

                语法:

        var newArr = arr.find(function(item,index,arr){

                return item>1

                })

        5.every

                概念:数组中是否每一个元素都满足指定的条件,全部满足返回true

                语法:

        var arr=[2,3,4,5]

        var flag= arr.find(function(item,index,arr){

                return item>1

                })

         flag==>true

        6.some

                概念:数组中是否有元素满足指定的条件,只要有一个满足就返回true

                语法:

        var arr=[-1,-2,0,2,3,4,5]

        var flag= arr.find(function(item,index,arr){

                return item>1

                })

         flag==>true

        7.reduce

                概念:接收一个方法作为累加器,数组中的每个数开始合并为最终值

                语法:

var sum=arr.reduce(function(previousValue,currentValue,currentInxde,arr){

                return previousValue+item

        },[initValue])

//无初始化值时,previousValue为第一项,后面为返回的值

//有初始化值时,previousValue为初始化值,后面为返回值

5.排序

        概念:

                就是把一个乱序的数组,通过我们的处理,让他变成一个有序的数组

        排序的方式:

                        冒泡排序和选择排序

                1.冒泡排序:

                         基本思想: 比较相邻的元素,如果第一个比第二个大,就交换他们两个。对每一对响铃元素作同样的工作,从开始第一对到结尾的最后一对,这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

                        核心算法:

for(var i=0;i<arr.length-1;i++)
{
    for(var j=0;j<n-i-1;j++){
        if(a[j]>a[j+1])
        {
            var temp=a[j]
            a[j]=a[j+1]
            a[j+1]=a[j]
        }

    }
}

案例:

        将一列数98,78,86,59,94,100进行升序排序用sort

        var arr2=[98,78,86,59,94,100]
//方法一:
        arr2.sort(function fun(a,b){
            if(a<b)
            {
                return -1
            }
            if(a==b)
            {
                return 0
            }
            if(a>b)
            {
                return 1
            }
        })
        console.log(arr2)
//方法二:
arr2.sort(function fun(a,b){
           return a-b
        })
        console.log(arr2)
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值