美文网首页web进阶JavaScript相关文章
web进阶之二十一:数组及其操作方法

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

作者: 甚得朕心 | 来源:发表于2018-09-18 19:25 被阅读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>

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

数组的具体操作方法

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

  • 获取数组的长度:aList.length;

  • 用下标操作数组的某个数据:aList[0];

  • join() 将数组成员通过一个分隔符合并成字符串

  • push() 和 pop() 从数组最后增加成员或删除成员

  • unshift()和 shift() 从数组前面增加成员或删除成员

  • reverse() 将数组反转

  • indexOf() 返回数组中元素第一次出现的索引值

  • splice() 在数组中增加或删除成员

<!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>

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

相关文章

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

      在很多编程语言中都有数组,当然,在Js中也一样存在。 数组的创建 在js中有两个创建方 之间创建 面向对象创建...

  • web进阶之二十二:字符串及其操作方法

      字符串,在很多语言中都会存在的数据类型,那么在Js中时如何对它进行操作的呢? 字符串的具体操作方法 字符串合并...

  • java web目录

    java web目录 web编程基础web编程进阶(一)web编程进阶(二)web编程原理

  • 『JavaScript专题』之类型判断(上)

    前言 类型判断在 web 开发中有非常广泛的应用,简单的有判断数字还是字符串,进阶一点的有判断数组还是对象,再进阶...

  • js基础了解

    js数组常用遍历方法使用: js数组常用操作方法使用: 基本逻辑运算: 基本字符串操作方法:

  • 这应该是JavaScript 中数组操作方法(含ES5及ES5+

    一、ES5 中数组操作方法 详尽使用参看 MDN_Array 二、ES5+ 中数组操作方法 除了 flat 和 f...

  • iOS 进阶+面试(三)

    本篇文章是承接上篇文章 iOS 进阶+面试(二) 二十一、可变数组与不可变数组用什么修饰:原因? 地址https...

  • JS学习笔记_数组篇

    (一)操作方法 push: 从数组末尾添加项,返回数组长度unshift : 从数组头添加项,返回数组长度pop...

  • 前端的基本操作

    数组以及操作方法 在JavaScript中数组就是类似与Python中的列表 其实数组也是一种object 数组的...

  • 数组和对象的操作

    数组操作方法 数组中splice的操作(改变的是原数组,返回结果是分割的数组) 数组中slice的操作(不改变原数...

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/qwcynftx.html