您的位置:首页 > 娱乐 > 明星 > JavaScript基础(八)

JavaScript基础(八)

2025/2/28 1:07:37 来源:https://blog.csdn.net/2401_82863547/article/details/139075541  浏览:    关键词:JavaScript基础(八)

数组

顾名思义,数组就是保存一组数据的集合。(具有相同类型的数据)

如: var name1 ='小红',

        name2 ='小明',

        name3 ='狗蛋';

//存储一组数据(数组)

 var arry =['小红','小明','狗蛋'];

    //打印一下

    alert(arry);

cfd01a3ad8794b1691e47509893db02b.png

    //也可以单独拿出来

    alert(arry[2]);

eb63c012ba684fa18d08f46002135a8a.png

可以看到里面数组也是从0开始,对应小红,1,2…依次往下对应。

下面自然就是遍历数组:

还是用for循环遍历

 var arry =['小红','小明','狗蛋'];

    for (var i=0; i<=2; i++){

        console.log(arry[i]);

    }

5261c33944a44e6f83f1383eefffe6df.png

遍历下一步自然就是取值:

前面我们说的012就是下标,数组[下标]就能取到了。

var arry=['小明'…]后面一直加数据,i<=后的数也一直改,很麻烦。

可以用数组长度代替——arry.length,这个是从1开始计数,三个数据长度就是3,所以,i<arry.length,下标还是一样,从0开始:

  var arry =['小红','小明','狗蛋'];

    for (var i=0; i<arry.length; i++){

        console.log(arry[i]);

    }

74daa9f8a1e24e9ebdf39e4d3c5093b3.png

如果用<=,有个数据不存在,它找不到:

0601e4e90ccc42df91438d77de95f17d.png

数组添加,删除数据& for in & for of

 //添加数据

    //数组名.push(值);加在数组的最后面

    var nums =[1,2,3,4,5];

    nums.push(999);

    console.log(nums);

0db863922ed642ab8b4feceae4629c59.png

  //数组名.unshift放在数组最前面

    var nums =[1,2,3,4,5];

    nums.unshift(999);

    console.log(nums);

bc58da5380f4495c8fa85b0371129789.png

    //删除值

    //数组名.splice(a,b);a:从a下标的位置开始删除,b:删除b 个。

    var nums =[1,2,3,4,5];

    nums.splice(2,2);

    console.log(nums);

c1a0a4319df04a0ba1bb10f43471ffbb.png

 //for in增强型for循环,取数组下标

 var nums =[1,2,3,4,5];

    for (var i in nums){

         console.log(i); //取下标

         console.log(nums[i]);//遍历

    }

a3beb69a282d41f8b55c82e8880a3dce.png

 白色的我们取的下标,下面的是对应的值。

//for of直接取值

 var nums =[1,2,3,4,5];

    for (var i of nums){

         console.log(i); //直接取值

    }

efd9ce8ad9314e4abae69942d7ea62f0.png

正好前面刚说了删除值,那如果我们要处理的数据中有很多重复的数据我们要去除怎么办?

双重for循环数组去重

var nums =[1,1,2,2,3,3,4,4];

    for (var i=0; i<nums.length; i++){

        for (var j=i+1; j<nums.length; j++){

            if (nums[i]==nums[j]){

                nums.splice(j,1)

                j--;//去重后数组向前顶了一位,怕遗漏所以要从删掉的这一位开始。

            }

        }

    }

    console.log(nums);

af1a0483f0ce4131a69389402ff7d508.png

最后一个练习:用*写等腰三角形

<script>

    for (var i=1; i<=5; i++){

        for (var j=0; j<2*i-1; j++){

            //因为第一行1个*,第二层三个,*的个数是行数的两倍减一,i就是行数,所以j要循环2*i-1次

            document.write('*');

        }

        //每循环一次换行

        document.write('<br>')

    }

</script> 

7f7ea753a3814d229771e4ae30e2d405.png

好,出来了,但这也不是等腰三角形啊,那咋整,有个简单的方法,直接在head中用样式设置:

<style>

        body{

            text-align: center;

        }

    </style>

672059b232df4c7985e91bcbcf0107e9.png

那我就不,不想用style直接打出一个,好。

  for (var i=1; i<=5; i++){

        for (var j=1; j<5-i; j++){

            document.write('#');

        }

        for (var k=1; k<=2*i-1; k++){

            document.write('*');

        }

        //每循环一次换行

        document.write('<br>')

    }

我们多加个循环,将每一行前面用#补全

0448bc6c698f47e0afc9ace6d690e0e2.png

循环多少次也是找找关系,比较简单,那再把#换成空格&nbsp是不是就行了

851b74d026614606acfac02a776e4b2e.png

 正好双循环顺便再练一下,好,就这样。

 

 

 

 

 

 

 

 

 

 

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com