程序代码前的序号怎么去掉?

有时候我们从网上复制来的代码行首都会有数字,一个一个删除就很麻烦,于是我从网上找来了一个解决办法:

(我太菜了,争取过几天自己写个脚本,如果哪位大佬写过的话热烈欢迎评论去补充嗷嗷)

打开dev编译器

1、按下键盘上的Alt键,在行号上拖动鼠标。

2、选中行号后,按下键盘上的Delete键

具体的:https://www.jb51.net/softjc/649605.html

非常感谢您的提问。根据您的要求,我为您编写了以下微信小程序。请注意,本程序只是一个示例,可能需要做一定的修改才能符合您的实际需求。 首先,我们需要创建一个新的抽签广场,生成一个广场序号,同时要记录这个广场的所有参与者,以及他们输入的数字。我们可以用一个数组来存储这些信息。 ```javascript // 抽签广场列表,每个元素包括以下信息: // id: 广场的序号 // participants: 参与者列表,每个参与者包括以下信息: // id: 参与者的微信号 // number: 参与者输入的数字 let drawingLots = []; // 创建一个新的抽签广场 function createDrawingLots() { let id = drawingLots.length + 1; let participants = []; drawingLots.push({id, participants}); return id; } ``` 然后,每个选手进入抽签广场时,需要输入广场序号和自己的数字。我们可以使用微信小程序中的输入框组件和按钮组件实现。 ```html <!-- 主界面 --> <view class="container"> <view class="card"> <!-- 输入框:广场序号 --> <input type="number" placeholder="请输入广场序号" bindinput="bindPlazaId" value="{{plazaId}}"></input> <!-- 输入框:数字 --> <input type="number" placeholder="请输入数字(0~1000)" bindinput="bindNumber" value="{{number}}"></input> <!-- 按钮:进入 --> <button bindtap="enterPlaza">进入广场</button> </view> </view> ``` 在界面的实现中,我们需要为输入框和按钮添加相应的事件绑定。 ```javascript // 当输入框中输入广场序号时,将其存储在当页面的数据中 function bindPlazaId(e) { this.setData({plazaId: e.detail.value}); } // 当输入框中输入数字时,将其存储在当页面的数据中 function bindNumber(e) { this.setData({number: e.detail.value}); } // 当按钮被点击时,将输入数据提交到服务器,并跳转到等待界面 function enterPlaza() { let plazaId = this.data.plazaId; let number = this.data.number; if (plazaId && number) { wx.request({ url: 'https://example.com/api/drawingLots', method: 'POST', data: {plazaId, number}, success: (res) => { let drawingLots = res.data; wx.navigateTo({ url: '/pages/wait/wait?plazaId=' + plazaId + '&drawingLots=' + JSON.stringify(drawingLots), }); } }); } else { wx.showToast({title: '广场序号和数字不能为空', icon: 'none'}); } } ``` 在服务器端,我们需要处理客户端提交的数据,并返回排名信息。为了实现“单项环上的无leader选举问题”,我们可以使用一个简单的算法——环形排序。 首先,将所有参与者的数字按照大小排序,这个排序过程可以使用 JavaScript 的标准排序函数 `Array.prototype.sort()` 来实现。 ```javascript // 将参与者按照数字大小排序 function sortParticipants(participants) { return participants.sort((a, b) => a.number - b.number); } ``` 然后,我们可以计算出每个参与者在环中的位置。这里,为了方便起见,在环的末尾添加了一个“伪参与者”,它的数字为所有参与者中的最大值加上一个很大的数(例如 10000),这样就可以确保环形排序的正确进行。 ```javascript // 计算每个参与者在环中的位置 function calculatePositions(participants) { let maxNumber = Math.max(...participants.map(p => p.number)); let pseudoParticipant = {id: 'pseudo', number: maxNumber + 10000}; participants = [...participants, pseudoParticipant]; let positions = participants.map((p, i) => ({id: p.id, position: i})); for (let i = 0; i < positions.length; i++) { let prev = positions[i-1] || positions[positions.length-2]; let curr = positions[i]; let next = positions[i+1] || positions[1]; if (curr.id !== 'pseudo') { curr.position += Math.ceil((next.position - prev.position) / 2); } } return positions; } ``` 最后,将参与者按照位置排序,去掉“伪参与者”,就可以得到最终的排序结果。 ```javascript // 按照位置排序,去掉“伪参与者” function removePseudoParticipant(participants) { participants = participants.filter(p => p.id !== 'pseudo'); participants.sort((a, b) => a.position - b.position); return participants; } ``` 这些函数的实现可以根据实际需求进行修改。将它们整合到一个 HTTP 服务器中,就可以处理客户端提交的数据,并返回排序结果。 ```javascript const express = require('express'); const bodyParser = require('body-parser'); // 抽签广场列表,每个元素包括以下信息: // id: 广场的序号 // participants: 参与者列表,每个参与者包括以下信息: // id: 参与者的微信号 // number: 参与者输入的数字 let drawingLots = []; const app = express(); app.use(bodyParser.json()); // 创建一个新的抽签广场,返回广场序号 app.post('/api/createDrawingLots', (req, res) => { let id = drawingLots.length + 1; let participants = []; drawingLots.push({id, participants}); res.json({id}); }); // 将一个选手加入到指定的抽签广场中 app.post('/api/joinDrawingLots', (req, res) => { let {plazaId, id, number} = req.body; let drawingLotsItem = drawingLots.find(i => i.id === plazaId); if (drawingLotsItem) { drawingLotsItem.participants.push({id, number}); res.json({success: true}); } else { res.json({success: false, message: '未找到指定的抽签广场'}); } }); // 执行抽签,返回排序结果 app.post('/api/doDrawingLots', (req, res) => { let {plazaId} = req.body; let drawingLotsItem = drawingLots.find(i => i.id === plazaId); if (drawingLotsItem && drawingLotsItem.participants.length > 0) { let participants = sortParticipants(drawingLotsItem.participants); let positions = calculatePositions(participants); let ranks = removePseudoParticipant(participants); res.json(ranks); } else { res.json([]); } }); app.listen(3000); ``` 最后,我们需要编写一个“等待界面”,让选手在这个界面中等待其他选手的输入。 ```html <!-- 等待界面 --> <view class="container"> <view class="card"> <view>您已加入抽签广场 {{plazaId}},等待其他参与者加入...</view> </view> </view> ``` 在该界面中,我们可以使用微信小程序的定时器组件 `setInterval()` 来不断地向服务器查询当广场的参与者列表,直到所有人都已经加入。 ```javascript // 定时查询参与者列表,直到所有人都已经加入 function queryParticipants() { this.intervalId = setInterval(() => { wx.request({ url: 'https://example.com/api/drawingLots?plazaId=' + this.data.plazaId, method: 'GET', success: (res) => { let participants = res.data; if (participants.length === this.data.participants.length) { clearInterval(this.intervalId); wx.navigateTo({ url: '/pages/result/result?participants=' + JSON.stringify(participants), }); } else { this.setData({participants}); } } }); }, 1000); } ``` 在跳转到最终结果界面时,我们将所有参与者的信息传递给该界面,界面会将他们按照排序结果进行展示。 ```html <!-- 最终结果界面 --> <view class="container"> <view class="card"> <view class="item" wx:for="{{participants}}"> <text>第 {{index+1}} 名:</text> <text>{{item.id}},数字为 {{item.number}}</text> </view> </view> </view> ``` 最终,我们将上述代码组合在一起,就可以实现一个简单的微信小程序抽签应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值