js基础编程-题目18 转圈游戏

这篇博客分享了一道JS编程题,涉及圆形报数游戏的解决方案,使用双指针方法找到最后剩余的人的编号。同时,文章探讨了稀疏数组的创建与遍历,包括Array.fill()和扩展运算符的使用。通过实例展示了如何填充和遍历稀疏数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦

编号1100的一百个人围成一圈,以123123的方式进行报数,数到3的人自动退出圈子,剩下的人继续报数,问最后剩下的人编号是多少?

双指针

function test(n){
  let arr = new Array(n).fill().map((_,i)=>i+1)//flag1
  let num = 1;
  let index = 0;
  while(arr.length > 2){
    if(num !== 3){
      index ++
      num ++  
    }else{
      num = 1
      arr.splice(index,1)
    }
    if(index ===arr.length){index =0}
  }
 return arr
}

flag处:我们有那些需要占位,而上下文中不使用的变量,可以使用下划线表示。

这里扩展下 稀松数组

  • 稀松数组的创建
    Array(仅一个参数) 仅输入一个数,生成有该数长度的空数组(稀松数组)
    new Array(仅一个参数)
console.log(Array(3))//[ <3 empty items> ]
console.log(new Array(3))//[ <3 empty items> ]

ES6有 Array.of 方法,针对数组传一个参数的场景做出了改变

console.log(Array.of(3))// [3]
  • 稀松数组的遍历
    注意:稀松数组是不能遍历的
const arr = Array(3)
console.log(arr.length)//3
for(let i;i<arr.length;i++){//由于不能遍历,此操作无效
  console.log("无效")
  console.log(arr)
}

我们要遍历操作稀松数组,可以想将他填充
方法一:fill() 填充数组

console.log(Array(3).fill())//[ undefined, undefined, undefined ]
console.log(Array(3).fill(1))//[ 1, 1, 1 ]

方法二:... 扩展运算符,将其转化为数组

console.log([...Array(3)])//[ undefined, undefined, undefined ]
### 解决方案 当 `npm install element-plus --save` 过程中出现卡住的情况时,可以尝试以下方法解决问题: #### 方法一:更换 npm 源 如果默认的 npm 源速度较慢或者不稳定,可以通过切换到国内镜像源(如淘宝镜像)来加速安装过程。具体操作如下: 1. 设置 npm 使用淘宝镜像源: ```bash npm config set registry https://registry.npmmirror.com/ ``` 2. 验证配置是否生效: ```bash npm config get registry ``` 如果返回的结果是 `https://registry.npmmirror.com/`,则说明设置成功[^3]。 #### 方法二:清理缓存并重试 有时 npm 缓存可能导致安装失败或卡顿,因此可以先清除缓存再重新安装: ```bash npm cache clean --force npm install element-plus --save ``` #### 方法三:使用其他包管理工具 除了 npm 外,还可以考虑使用 Yarn 或 pnpm 来替代安装依赖项。这些工具可能提供更稳定的性能和更快的速度。 - **Yarn**: ```bash yarn add element-plus ``` - **pnpm**: ```bash pnpm install element-plus ``` 通过上述方式可以选择更适合当前网络环境的工具完成安装[^2]。 #### 方法四:按需加载减少体积 对于大型框架来说,一次性全部下载可能会增加时间消耗以及占用更多存储空间。推荐采用按需导入的方式只引入所需组件从而优化整个流程效率。详情可查阅官方文档了解如何实现按需加载功能。 #### 方法五:检查网络连接状态 确保设备拥有良好的互联网接入条件也是很重要的一步;如果有防火墙或者其他安全软件正在阻止访问外部资源,则需要调整相应设置允许正常通信。 --- ### 示例代码片段 以下是基于 Vue 项目的简单集成例子供参考: ```javascript // main.js 文件中的基本初始化部分 import { createApp } from &#39;vue&#39;; import App from &#39;./App.vue&#39;; // 导入 Element Plus 和样式文件 import ElementPlus from &#39;element-plus&#39;; import &#39;element-plus/dist/index.css&#39;; const app = createApp(App); app.use(ElementPlus); app.mount(&#39;#app&#39;); ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳晓黑胡椒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值