操作题
第一题
1、利用wx:if 及 wx:for 数据绑定来实现输出乘法口诀表
logs.js 代码如下:
// logs.js
const util = require('../../utils/util.js')
Page({
data: {
logs: [],
array:[1,2,3,4,5,6,7,8,9]
},
onLoad() {
this.setData({
logs: (wx.getStorageSync('logs') || []).map(log => {
return {
date: util.formatTime(new Date(log)),
timeStamp: log
}
})
})
}
})
logs.wxml 代码如下:
<view class="border" >
<view class="q">乘法口诀表</view>
<view wx:for="{{array}}" wx:for-item="i">
<view class="inline" wx:for="{{array}}" wx:for-item="j">
<view class="size" wx:if="{{i>=j}}">
{{j}}*{{i}}={{i*j}}
</view>
</view>
</view>
</view>
logs.wxss 代码如下:
.log-list {
display: flex;
justify-content: flex-start;
font-size: 10px;
}
.log-item {
margin: 10rpx;
}
.inline{
display:inline-block;
}
.size{
font-size: 10px;
padding-right:1em;
}
.q{
font-weight: 700;
text-align: center;
}
logs.json 代码如下:
{
"navigationBarTitleText": "微信小程序-九九乘法表",
"usingComponents": {}
}
运行结果:
第二题
2.编写程序,在Console 控制台输出水仙花数(水仙花数是指一个3位数的各位上的字的3次幂之和等于它本身。例如,13+53+33=153)。
index.js 代码:
Page({
data: {
result: ''
},
inputChange(e) {
this.setData({
number: e.detail.value
})
},
checkNumber() {
const number = this.data.number;
if (number.length !== 3) {
this.setData({
result: '请输入三位数'
})
return;
}
const digit1 = parseInt(number.charAt(0));
const digit2 = parseInt(number.charAt(1));
const digit3 = parseInt(number.charAt(2));
const sum = Math.pow(digit1, 3) + Math.pow(digit2, 3) + Math.pow(digit3, 3);
if (sum === parseInt(number)) {
this.setData({
result: '是水仙花数'
})
} else {
this.setData({
result: '不是水仙花数'
})
}
}
})
index.json 代码:
{
"navigationBarTitleText": "水仙花数"
}
index.wxml 代码:
<view class="container">
<view class="title">判断水仙花数</view>
<input class="input" placeholder="请输入三位数" bindinput="inputChange" />
<button class="button" bindtap="checkNumber">验证</button>
<view class="result">{{result}}</view>
</view>
运行结果:
第三题
3.编写程序,在页面中输出水仙花数,如图2-22所示。
sxhs.js 代码:
Page({
data:{
narcissisticNumbers: []
},
onLoad: function () {
this.findNarcissisticNumbers();
},
findNarcissisticNumbers: function (){
const numbers =[];
for (let i=100;i<1000;i++){
const a = Math.floor(i / 100);
const b = Math.floor((i % 100) / 10); const c=i% 10;
if (a ** 3 + b** 3 +c**3===i){
numbers.push(i);}}
this.setData({
narcissisticNumbers: numbers});}
});
sxhs.json 代码:
{
"navigationBarTitleText": "水仙花数"
}
sxhs.wxml 代码:
<view class="li">
<view class="narcissistic-numbers">
<text>水仙花数共有:</text>
<text wx:for="{{narcissisticNumbers}}" wx:key="*this">{{item}}</text></view>
</view>
sxhs.wsxx 代码:
.li {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 50vh;
font-size: 25px;
}
运行结果:
第四题
4.编写程序,在页面中输出菱形图案,如图2-23所示。
lx.js 代码:
Page({
data: {
diamondArray: [' * ', ' *** ', ' ***** ', '*******', ' ***** ', ' *** ', ' * ']
}
})
lx.json 代码:
{
"navigationBarTitleText": "菱形图案"
}
lx.wxml 代码:
<view class="yv">
<block wx:for="{{diamondArray}}" wx:for-item="item" wx:for-index="index">
<text class="li">{{item}}</text>
</block>
</view>
lx.wsxx 代码:
.li {
display: flex;
flex-direction: column;
align-items: center;
}
.yv {
font-size: 20px;
margin-bottom: 10px;
}
运行结果: