求和对象 score
var allScore = { 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0 }
创建一个数组,放最终的排序的数组
var final = []
按照官网计算的式子 求和,用到 foreach:
this.data.score.forEach(function (item, index, arr) {
console.log(item.option[self.data.allValue[index].value])
for (var i = 1; i < 13; i++) {//循环相加求和
allScore[i] += (item.option[self.data.allValue[index].value][i])
}
})
写一个方法用来排序
最后
return b.score - a.score
比较排序
final.sort(compare).forEach(function (item, index, arr) {
switch (item.id) {
case "1":
item.name = "css"
break;
case "2":
picker 用wx:for 渲染列表
<picker mode="selector" range="{{item.option}}" range-key="name"
value="{{allValue[index].value}}" bindchange='change' data-idx="{{index}}">
<text decode="true">{{item.name}} {{item.option[allValue[index].value].name}}</text>
</picker>
存储也可以用
wx.setStorage({
key: 'yourJob',
data: self.data.yourJob,
})
onLoad: function (options) {
var self = this
wx.request({
var self = this
微信小程序中,在wx.request({});方法调用成功或者失败之后,有时候会需要获取页面初始化数据data的情况,这个时候,如果使用,this.data来获取,会出现获取不到的情况,调试页面也会报undefiend。原因是,在javascript中,this代表着当前对象,会随着程序的执行过程中的上下文改变,在wx.request({});方法的回调函数中,对象已经发生改变,所以已经不是wx.request({});方法对象了,data属性也不存在了。官方的解决办法是,复制一份当前的对象
setData方法
参数接受一个对象,以key,value的形式表示
setData 函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的 this.data 的值(同步)。
self.setData({
myJob: self.data.myJob
})
wxml
bindtap='changeTemplate'>{{myJob[1].name}}
第二页 tab选项卡在官网找了很久发现好像并没有,只在api 里找到tabbar ,并没有看懂 。直接百度一下copy改改
评论