首页 > 软件操作教程 > 编程开发 > JavaScript
题目内容

JavaScript 队列操作

题目答案

■知识点

    使用unshiftO和shift()方法可以在数组头部执行操作。其中unshift()能够把一个或多个参数值附加到数组的头部,第1个参数为数组新的元素0,第2个参数为新的元素1,以此类推,最后返回添加元素后的数组长度。

    shift()方法能够删除数组第1个元素,并返回该元素,然后将余下的所有元素前移一位,以填补数组头部的空缺。如果数组为空,shift()将不进行任何操作,返回undefined。

    队列也是一种运算受限的线性表,不过与栈操作不同,队列只允许在一端进行插入操作,在另一端进行删除操作。队列遵循先进先出、后进后出的原则,类似的行为在生活中比较常见,如排队购物,任务排序等。在JavaScript动画设计中,也会用到队列操作来设计回调函数。

■实例设计

    下面的示例是一个经典的编程游戏:有一群猴子排成一圈,按1、2、3、…、n依次编号,然后从第1只开始数,数到第m只,则把它踢出圈,然后从它后面再开始数,当再次数到第m只时,继续把它踢出圈,以此类推,直到只剩下一只猴子为止,那只猴子就叫作大王。要求编程模拟此过程,输入m、 n,输出最后那个大王的编号。

//n表示猴子的个数,m表示踢出的位置

function f(n, m){

    //将猴子编号放入数组 

    var arr =[]; 

    for (i = 1; i < n+1; i++){

       arr.push(i);

    }

    //当数组内只剩下一只猴子时跳出循环

    while(arr.length > 1){

        for (var i=0; i< m-1 ; i++) {       //定义排队轮转的次数

            arr.push (arr.shift());                  //队列操作,完成猴子的轮转

        }

        arr.shift();                                  //踢出第m只猴子

    }

    return arr;                                 //返回包含最后一只猴子的数组

}

console.log( f (5,3));                   //编号为4的猴子胜出

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

软件操作 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

相关视频试题

最需教育客户端 软件问题一手掌握

去 App Store 免费下载 iOS 客户端