JS数组的相关知识

了解数组前,我们先来了解一下数据之间存储的区别。

数据的存储空间分为两种,栈和堆。

栈主要存储基本数据类型的内容。

堆主要存储复杂数据类型的内容。

(不知道什么的基本数据类型什么是复杂数据类型的可以看一下前面几篇文章)

 数据类型之间的比较

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

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

 基本数据类型和复杂数据类型的区别

因为复杂数据类型,变量存储的是地址,真是内容在堆空间内存储。所以赋值的时候相当于把obj的那个地址复制了一份给到了obj2变量。现在obj和obj2两个变量存储的地址是一样的,指向一个内存空间。所以使用obj2这个变量修改空间内的内容,obj指向的空间也会跟着改变了。

案例:

 数组常用到的一些方法

 push是用来在数组的末尾追加元素(可以追加多个,用逗号隔开)

 pop是用来删除数组最后的一个元素

unshift是在数组前追加元素

shift是删除数组第一个元素

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

语法:splice(从哪一个索引位置开始,截取多少个,替换的新元素)

(第三个参数可以不写)

 reverse是用来反转数组使用的

sort是用来给数组排序的

注意:按数组中元素的对应unicode进行排序

 

concat是把多个数组进行拼接

 

join是把数组里面的每一项内容链接起来,变成一个字符串

 

indexOf  获取数组中的元素所对应的下标

 includes检测数组中是否包含某元素

 ES5常用数组遍历方法

forEach  和for循环一个作用,就是来遍历数组的

语法:数组名.forEach(function(item,index,arr){})

forEach()的时候传递的那个函数,会根据数组的长度执行

数组的长度是多少,这个函数就会执行多少回

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

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

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

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

 every  数组中是否每个元素都满足指定的条件,全部满足返回ture

some  数组中只要有一个满足条件,返回ture

reduce  接收一个方法作为累加器,数组中的每一个值(从左到右)开始合并,最终为一个值

 经典案例(冒泡排序)

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

 代码:

    var maoPao=[10,12,43,123,45,56,67,65,40]

    var cont=0

    for(var i=0;i<=maoPao.length-1;i++){

        for(var j=0 ; j<=maoPao.length-1-i;j++){

            document.write(j,'<br>');

        if(maoPao[j]>maoPao[j+1]){

            cont=maoPao[j]

            maoPao[j]=maoPao[j+1]

            maoPao[j+1]=cont

           }

        }

    }

    document.write(maoPao,'<br>')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值