码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MBTI答题应用小程序


    源代码

    calmthink/mbti小程序 (gitee.com)

    实现方案

    题目结构

     [
     {
    
        "options": [
    
          {
    
            "result": "I",
    
            "value": "独自工作",
    
            "key": "A"
    
          },
    
          {
    
            "result": "E",
    
            "value": "与他人合作",
    
            "key": "B"
    
          }
    
        ],
    
        "title": "你通常更喜欢"
    
      },
      ]
    

    答案结构

    [
    {
    
        "resultProp": [
    
          "I",
    
          "S",
    
          "T",
    
          "J"
    
        ],
    
        "resultDesc": "忠诚可靠,被公认为务实,注重细节。",
    
        "resultPicture": "icon_url_istj",//其他信息
    
        "resultName": "ISTJ(物流师)"
    
      },
    ]
    

    评分算法

    用户每道题都必须选择,不能为null
    本地存储用户的结果列表 anserList = [‘A’,‘B’,‘C’,‘B’,‘B’]
    初始化对象{},记录IETPJNS每个的分数
    通过遍历结果数组获取最大的分数确定人格类型

    /**  
     * 获取最佳题目评分结果  
     * @param answerList  
     * @param questions  
     * @param question_results  
     */  
      
    export function getBestQuestionResult(answerList, questions, question_results) {  
      // 初始化一个对象,用于存储每个选项的计数  
      const optionCount = {};  
      
    // 假设 answerList 和 questions 的长度相同且顺序对应  
      for (let i = 0; i < answerList.length; i++) {  
        const answer = answerList[i];  
        const question = questions[i]; // 直接从对应的问题中获取选项  
        for (const option of question.options)      {  
          if (option.key === answer) {  
            const result = option.result;  
            if (!optionCount[result]) {  
              optionCount[result] = 1;  
            } else {  
              optionCount[result]++;  
            }  
            break; // 找到匹配项后跳出循环,因为我们已经找到了答案  
          }  
        }  
      }  
      
    // 初始化最高分数和最高分数对应的评分结果  
      let maxScore = 0;  
      let maxScoreResult = null;  
      
    // 遍历评分结果列表  
      for (const result of question_results) {  
        const score = result.resultProp.reduce((count, prop) => {  
          return count + (optionCount[prop] || 0);  
        }, 0);  
      
        if (score > maxScore) {  
          maxScore = score;  
          maxScoreResult = result;  
        }  
      }  
      
    // 返回最高分数和最高分数对应的评分结果  
      return maxScoreResult;  
    }
    

    技术选型

    • React
    • Taro跨端框架
    • TaroUI组件库

    配置eslint prettier

    在webstorm中打开自动读取

    在这里插入图片描述

    新增页面组件

    1. 全局配置文件app.config.ts中新增页面路由
    2. 复制已有页面文件,创造出新的页面
    3. 根据自己的需求定制开发
    4. 简单实现页面跳转
     render () {  
        return (  
          <View className='user'>  
            <AtButton type='primary' onClick={()=>{  
              Taro.navigateTo({  
                  url:'/pages/index/index'  
              })  
            }}>  
              点击跳转  
            </AtButton>  
          </View>    )  
      }  
    }
    
  • 相关阅读:
    报错:Error: The project seems to require yarn but it‘s not installed解决方案
    Linux运行级别指定
    openharmony容器组件之SideBarContainer
    低代码:让软件开发不再遥不可及
    报错 | devtools工具安装问题
    表达矩阵任意两个基因相关性分析 批量相关性分析 tcga geo 矩阵中相关性强的基因对 基因相关性
    ​7.1 项目1 学生通讯录管理:文本文件增删改查(C++版本)(自顶向下设计+断点调试) (A)​
    C. Qualification Rounds(思维,特情)
    uniapp - 开关按钮
    5年测试,面试结束后被HR怼了..(心塞)
  • 原文地址:https://blog.csdn.net/qq_73270720/article/details/140441301
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号