web进阶JavaScript相关文章

web进阶之二十一:数组及其操作方法

2018-09-18  本文已影响10人  甚得朕心

  在很多编程语言中都有数组,当然,在Js中也一样存在。

数组的创建

在js中有两个创建方

同时数组有一维数组和多维数组,即数组里面的元素可以是单个元素,或者里面也是数组。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数组的创建</title>
    <script type="text/javascript">
        //面向对象的方式创建
        var aRr01 = new Array(1,2,3,'abc');
        //直接创建
        var aRr02 = [1,2,3,'def'];//推荐使用,性能更高
                alert(aRr02.length);//会出现数组的长度。4
                alert(aRr02[0]);//将会打印出1。就是数组中的第零各元素。
    </script>
</head>
<body>
    
</body>
</html>

推荐使用直接创建,效率更高。

数组的具体操作方法

当数组创建完成后,我们怎么操作呢,其中方法很多,需要多加琢磨。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数组常用方法</title>
    <script type="text/javascript">
        var aRr02 = [1,2,'a',4,5,6,'abc']
        获取数组的成员数量(长度)
        alert(aRr02.length);//弹出7
        alert(aRr02[3]);//弹出4
        /*创建二维数组,进行操作*/
        var aRr03 = [[1,2,3],['a','b','c','d'],[true,false]];
        alert(aRr03.length);//弹出3
        alert(aRr03[1].length);//弹出3
        alert(aRr03[1][2]);//弹出c。先找出整体,在找个体
        /*join() 将数组成员通过一个分隔符合并成字符串*/
        var aRr = [1,2,3,4];
        //用-连接数组元素并转为字符串
        var sTr = aRr.join("-");//用-连接数组元素并转为字符串,弹出1-2-3-4

        var sTr = aRr.join('');//用空串连接
        alert(sTr);//弹出1234
        /*push() 和 pop() 从数组最后增加成员或删除成员*/
        /*向数组最后追加元素*/
        var aRr = [1,2,3,4];
        aRr.push(5);
        alert(aRr);//1,2,3,4,5

        //删除末尾元素
        aRr.pop();
        alert(aRr);//弹出1,2,3

        //向最前面插入元素0
        // aRr.unshift(0);
        // alert(aRr);//0,1,2,3,4
            /*unshift()和 shift() 从数组前面增加成员或删除成员*/
        /*删除第一个(索引为0的)元素*/
        var aRr = [1,2,3,4];
        aRr.shift();
        alert(aRr);//2,3,4
        /*reverse() 将数组反转*/
        //反转
        aRr.reverse();
        alert(aRr);//4,3,2,1
        /*indexOf() 返回数组中元素第一次出现的索引值*/
        //查找字母'b'第一次出现的索引
        var aRr2 = ['a','b','c','d','a','b','c','d'];
        var num = aRr2.indexOf('b');
        alert(num);//1
        /*splice() 在数组中增加或删除成员*/
        var aRr2 = ['a','b','c','d','a','b','c','d'];  
        //从第2索引元素开始,删除1个元素
        aRr2.splice(2,1);//删除c
        alert(aRr2);//a,b,d,a,b,c,d

        //从第2索引元素开始,删除1个元素,再插入e
        aRr2.splice(2,1,'e');//把c替换成e
        alert(aRr2);//a,b,e,d,a,b,c,d
/*也可以理解为替换*/
        //删除后面的abcd,为4位,改为fghi
        aRr2.splice(4,4,'f','g','h','i');//从第4位开始,删除四个元素,在插入4个元素
        alert(aRr2);//a,b,c,d,f,g,h,i
    </script>
</head>
<body>
    
</body>
</html>

数组的去重

  在很多编程语言中,都会有去重,都是通过现有的数据类型或者函数来进行操作,Js中我们可以自己写一个简单,但是很有效的去重方法。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数组去重</title>
    <script type="text/javascript">
        /* 定义一个数组 */
        var aRr = [1,3,4,1,6,9,1,2,5,3,1,6,5,4,4];
        /*定义个空数组,用于存放去重之后的数组*/
        var aRr2 = [];
        /*在for循环的条件中写上条件,循环的数就是下标的的值*/
        for(var i=0; i<aRr.length; i++){
            //判断元素第一次出现的位置,恰好是当前循环的数时,就将元素放入新数组
            //不难理解的是:如果数组里面只有一个唯一的元素,那么它的索引值肯定循环所产生的i是一样的。
            if(aRr.indexOf(aRr[i]) == i){
                aRr2.push(aRr[i]);
            }
        }

        alert(aRr2);//1,3,4,6,9,2,5
    </script>
</head>
<body>
    
</body>
</html>

通过标签获取元素

  在之前的代码中我们都是通过唯一性的id来获得,这次我们来通过标签获得。

这里要记得的是,通过标签获得元素时,相当于得到了一个选择集合,就像数组一样,我们可以通过下标来得到具体的元素。所以这里不能直接修改元素的style

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>通过标签获取元素</title>
    <script type="text/javascript">
        window.onload = function(){
            //获取页面上所有的li
            var aLi = document.getElementsByTagName('li');//这里的elements可以理解成为,标签可以是多个,而id只有一个

            //获取id为list01的ul
            // var oList = document.getElementById('list01');
            //再获取这个ul下的所有li
            // var aLi = oList.getElementsByTagName('li');
            alert(aLi.length);//12
            // alert(aLi.length);//8
            // aLi.pop();//错误用法,aLi是一个类似数组的选择集,没有数组通用的一些方法
            /*因为这里aLi获取到的是一个数据集合,就像数组一样,我们可以获取长度,但是不能修改所有属性
            只能一个个的修改,当然运用循环修改会更轻松点。*/
            aLi[0].style.backgroundColor = 'gold';
            aLi[1].style.backgroundColor = 'gold';
        }
    </script>
</head>
<body>
    <ul id="list01">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
    </ul>

    <ul id="list02">
        <li>9</li>
        <li>10</li>
        <li>11</li>
        <li>12</li>
    </ul>
</body>
</html>

在上面的方法中,我们要掌握,数组的基本操作方法和去重,这个实用是,是很有效果的。

上一篇下一篇

猜你喜欢

热点阅读