08_数组方法/数组栈、队列方法

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>

        // 检测数组:
        /* 自从 ECMAScript3 做出规定以后,就出现了确定了某个对象是不是数组的经典问题。
        对于一个网页,或者一个全局作用域而言,使用 instanceof 操作符就能得到满意的结果:
        */
        var value
        if (value instanceof Array) {
            // 对数组执行某些操作
        }

        /* instanceof 操作符的问题在于,它假定只有一个全局执行环境。

        如果网页中包含多个框架,那实际上就存在两个以上不同的全局执行环境,从而存在两个以上不同版本的 Array 函数。如果你从一个框架向另一个框架传入一个数组,那么传入的数组与在第二个框架
        中原生创建的数组分别具有各自不同的构造函数。

        为了解决这个问题,ECMAScript5 新增了 Array.isArray()方法。
        这个方法的目的是最终确定某个值到底是不是数组,而不管它在哪个全局执行环境中创建的。
        用法如下:
        */
        if (Array.isArray(value)) {
            // ...
        }

        // 支持 Array.isArray() 方法的浏览器有 IE9+ 、Firefox 4+ 、Safari 5+、Opera 10.5+ 和 Chrome.

        // 转换方法:


        /*  所有对象都具有  toLocalString() 、toString()、和 valueOf() 方法。其中,
        调用 valueOf() 返回的还是数组本身,而调用 toString() 会返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。
        
        */
        console.log(['red', 'green', 'blue'].valueOf())  //['red', 'green', 'blue']
        console.log(['red', 'green', 'blue'].toString()) //red,green,blue
        alert(['red', 'green', 'blue'])  //red,green,blue


    </script>
</body>

</html>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        /*栈方法:
        栈是一种 LIFO (Last-In-First-Out)(后进先出)的数据结构,也就是最新添加的项最早被移除。
        而栈中项的插入(叫做推入)和移除(叫做弹出),只发生在一个位置 ---- 栈的顶部。
        ECMAScript 为数组专门提供了 push() 和 pop() 方法,以便实现类似栈的行为

        push() 方法可以接收任意数量的参数,把他们逐个添加到数组末尾,并返回修改后数组的长度。
        pop() 方法则从数组末尾移除最后一项,减少数组的 length 的值,然后返回移除的项。
        */
        var list = new Array()

        var res = list.push('aa', 'bb')
        console.log(res)    // 2             // 返回修改后数组的长度
        console.log(list)   // ["aa", "bb"]  // 新数组

        var res_ = list.pop()
        console.log(res_)   // bb            // 返回移除的项 
        console.log(list)   // ["aa"]        // 新数组



        /* 队列方法:
        队列数据结构的访问规则是 FIFO(First-In-First-Out)(先进先出)
        队列在数组的末尾添加项,从列表的前端移除项。

        shift() 能够移除数组中的第一项并返回该项,同时将数组长度减1.
        */

        var list2 = ['zz', 'cc', 'bb']
        var res2 = list2.shift()
        console.log(res2)    // zz            // 返回移除的项
        console.log(list2)   // ["cc", "bb"]  // 新数组

    </script>
</body>

</html>
```


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值