数组的操作

一、创建数组

        var arr = new Array()

                Array中给一个值表示数组长度

                给多个值时,代表数组的每个值,数组长度为值的个数

        var arr = []

        当定义同名的数组时,后面的数组会覆盖前面的数组。

二、数组概念

        数组是内存中多个小容器的集合,每个小容器都有一个序号,叫做下标,第一个从0开始

        数组可以存放多种数据类型的值,number,string,对象,数组,函数等。

        数组里存放数组就是多维数组

三、遍历数组以及一些简单操作

         1.增:数组[下标] = 数据,下标大于数组的最大下标就是添加
         2.改:数组[下标] = 数据 ,下标等于要修改的元素的下标就是修改该元素
         3.删:数组.length = 0
         4.查:数组[下标]

        数组遍历使用for(var i=0;i<数组.length;i++){}

        for in也可以遍历数组但不建议,在数组没有内容需要循环遍历输入内容的时候,值是undefined,for in不会执行循环体,并且为null的情况,for in也不会执行循环体

        for in多用于对象的遍历

四、注意点:

        当一个数组赋值给另一个变量时,另一个变量对数组的修改也会修改原数组,这个数组就相当于一个门,而那两个变量名相当于这个门的两把钥匙,他们都能打开这个数组,改变数组的状态。

<script>
    var arr1 = [1,2,3]
    var arr2 = arr1;
    arr2[0] = 4;
    console.log(arr1);
    console.log(arr2);
</script>

 五、数组的一些操作方法

     总结分为两类(改变原数组,不改变原数组)

        会改变原数组:

  1. 数组.shift()删除数组第一个元素
  2. 数组.pop()删除数组最后一个元素
  3. 数组.unshift(值)在数组首位添加一个值
  4. 数组.push(值)在数组末尾添加一个值
  5. 数组.splice(值一,值二,...)
    1. 值一(下标值),从第几个值开始(包括那个值)
    2. 值二,删除几个元素
    3. 再往后的值表示添加进数组的元素值,添加在值一选中的元素前面
  6. 数组.reverse()翻转数组
  7. 数组.sort()数组排序,默认从小到大,只能判断每个元素的第一位数,适用与10以下的数
    1. 多位数时,数组.sort(function(a,b){return a-b})
    2. a-b>0时,b在前a在后
    3. a-b<0时,a在前b在后
    4. a-b=0时,ab位置保持不变

        不改变原数组生成一个新数组或值,需要定义一个变量来接收:

  1. 数组.concat()拼接数组
  2. 数组.join("字符串")把数组拼接成字符串,join中写的是自定义连接各元素的符号
  3. 数组.slice(开始下标,结束下标)截取数组,截取下来的数组包括开始元素,不包括结束元素
  4. 数组.indexOf(某个元素值)查找数组的某个值的下标,当有重复值时,返回的是第一次找到的元素下标,从前往后找,lasrIndexOf()是找到最后一次出现该值的元素的下标,未找到返回-1
  5. 数组.every(function(value){return value>0})判断每个值是否满足条件,返回true或false
  6. 数组.some(function(value){return value>0})判断是否有一个或多个满足条件,返回true或false
  7. 数组.filter(function(value){return value>0})把满足条件的元素组成一个新数组
  8. 数组.map(function(value){value += 1;return value;})对数组每一个元素进行处理并返回
  9. 数组.reduce(function(prev,next){return prev+next},init)用于数组的叠加
    1. prev是函数的返回值,初始返回值为init定义的值,init未定义时初始值是数组下标为0的元素
    2. next是数组下标为0开始往后遍历,当init未定义时next是从下标为1的元素开始
    3. init用于给prev定义一个初始值

六、数组排序

        1.冒泡排序:将相邻两个元素进行比较并交换位置,具体原理代码如下

<script>
    var arr = [1,5,2,7,4,2]
    //循环的次数
    for(i=0;i<arr.length-1;i++){
        //每次循环两两比较的次数
        for(j=0;j<arr.length-i-1;j++){
            var arr2 = null;
            if(arr[j]>arr[j+1]){
                arr2 = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = arr2
            }
        }
    }
    console.log(arr);
</script>

        2.选择排序:以从小到大举例,将第一个数与后面的依次比较,遇到比自己小的元素就和他交换位置,再用交换后的数往后比较,直到第一个数就是最小的数,再从第二个数开始往后比较做重复操作。具体代码如下

<script>
    var arr = [4,2,6,1,5]
    for(i=0;i<arr.length-1;i++){
        for(j=i+1;j<arr.length;j++){
            var arr2 = null;
            if(arr[i]>arr[j]){
                arr2 = arr[i];
                arr[i] = arr[j];
                arr[j] = arr2;
            }
        }
    }
    console.log(arr)
</script>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值