孙 鹏 张文静
(沈阳工学院信息与控制学院,辽宁 抚顺 113122)
小程序背单词开发一共分为3个部分:数据随机获取,输入监视与字符匹配,提示按钮功能实现,首先需要前端获取到云端数据库内的数据,再通过输入监视与数据库内数据进行匹配,得到单词拼写的结果,在同学不知道单词的情况可以点击提示按钮查看正确单词拼写,达到背单词的目的。
在云数据库内获取数据时需要重新调用数据库并使用随机函数sample()当作索取的条件来随机取出词汇,并将取出的数据赋值给为全局变量,使输入内容运用KMP算法的逆运算逻辑对其字符匹配,并当用户不认识且不会拼写的情况添加提示按钮提示,达到背单词的目的。具体代码如下:
数据库获取数据;
调用数据库;
const cloud = wx.require(‘wx-server-sdk’),
cloud.init(),
const db = wx.cloud.database(),
db.collection(‘SITdatabase’)
.aggregate()
.sample({size: 1, })
.end()
.then(res => {this.setData({list: res.list})
console.log(res)
let words = res.list[0].English
app.globalData.words = words})
代码解释:首先获取数据库,再进行对数据初始化,再随机获取一条数据,刷新单词数据,并打印至控制台,将已获取的数据作为全局变量app.globalData.words传到输入函数内。
将获取已知的单词赋值给全局变量app.globalData.words并将其与输入后的单词进行匹配,并检查与提示输入单词是否正确。具体代码如下。
inputWordRandom: function (e) {
var word = this.data.word
if (e.detail.value == app.globalData.words) {wx.showToast({title: '回答对了呢!',
icon: 'success'})
this.setData({color: 'rgb(40, 247, 33)'
if (e.detail.value.length == app.globalData.words.length) {
if (e.detail.value != app.globalData.words) {
wx.showToast({
title: '不对呀,看看正确答案~',
icon: 'none'})
this.setData({word: app.globalData.words,
color: 'rgb(247, 33, 33)'})}}
console.log(e)},
代码解释:先定义data内word值作为监视对象,将输入值与全局变量app.globalData.words进行字符匹配,并提示输入是否正确并刷新字体颜色(this.data.colors)并将输入内容打印至控制台。
在同学们遇到不认识的单词拼写时,在此加入了提示功能,为此方便同学们对单词的记忆,具体代码如下:
getWord: function(e){
if(app.globalData.words ===undefined){app.globalData.words = '点击查看以查看单词拼写' }
wx.showToast({
title: app.globalData.words,
icon: 'none'})},
代码解释:当同学点击提示按钮的时候,刷新单词数据,并将答案传给app.globalData.words作为提示对象,显示出单词答案。
背单词功能在逻辑上主要运用KMP算法的逆运算过程,并使用app.globalData.words作为全局变量与输入值匹配,使得背单词功能更全面,使用户背诵单词的效率更高。