weixin_41244451 2024-06-12 21:30 采纳率: 93.9%
浏览 0
已结题

这里怎么让numbers字符串里的数字和符号分别显示,也就是先显示4,再显示-3,最后显示+1


function generateQuestion() {
    let result = 0;
    const operators = ['+', '-'];
    let question = '';

    numbers='+4 -3 +1';////////////////////////这里的数是动态的,不是固定的,也有可以有是别的数字和符号,也有可能不止3个数
    for (let i = 0; i < 3; i++) {//
        let number, operator;
        /////////////////////这里怎么让numbers字符串里的数字和符号分别显示,也就是先显示4,再显示-3,最后显示+1/////////////////////////
        setTimeout(() => {
            displayQuestion(number,'','');
        }
    }, (i + 1) * shijian*1000);//间隔时间*1000
        
        result += operator === '+' ? number : -number;
        question += (i > 0 ? ' ' : '') + operator + number;
    }
    questions.push({ question: question, answer: result });
}
  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-12 21:31
    关注

    引自免费微信小程序:皆我百晓生

    要解决这个问题,首先需要从numbers字符串中解析出单独的数字和运算符,并且按照它们在字符串中的顺序依次处理。下面是一个修改后的函数,它将解析numbers字符串并按顺序显示每个数字和运算符。

    function generateQuestion() {
        let result = 0;
        const operators = ['+', '-'];
        let question = '';
        let numbers = '+4 -3 +1'; // 假设这是动态生成的字符串
    
        // 将字符串按空格分割成数组
        let parts = numbers.split(' ');
    
        // 遍历数组,处理每个数字和运算符
        for (let i = 0; i < parts.length; i++) {
            let part = parts[i];
            
            // 确定当前部分是数字还是运算符
            let isNumber = !isNaN(part);
            let number, operator;
    
            if (isNumber) {
                number = parseInt(part, 10);
                // 如果不是第一个数字,则获取前一个元素作为运算符
                if (i > 0) {
                    operator = parts[i - 1];
                }
            } else {
                operator = part;
            }
    
            // 每隔一定时间显示数字和运算符
            setTimeout(() => {
                // 注意:displayQuestion函数需要你自己定义
                displayQuestion(number, operator, '');
            }, (i + 1) * shijian * 1000);
    
            // 更新结果和问题字符串
            if (i > 0 && isNumber) {
                result += operator === '+' ? number : -number;
                question += ' ' + operator + number;
            }
        }
    
        // 添加第一个数字到问题字符串
        question = parts[0] + question;
    
        // 存储问题和答案
        questions.push({ question: question, answer: result });
    }
    

    在这个解决方案中,numbers字符串被首先分割成多个部分,然后遍历这些部分。对于每个部分,检查它是否为数字。如果是数字,则将其转换为整数类型,并尝试从前一个部分获取运算符(如果存在)。然后,使用setTimeout函数来按顺序显示每个数字和运算符。

    注意:displayQuestion函数需要你自己定义,它应该接受三个参数:数字、运算符和任何其他可能需要的信息。同样地,shijianquestions也需要在函数外部定义或传入。这个示例假设shijian是表示延迟时间的变量,而questions是一个用于存储问题和答案的数组。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月13日
  • 已采纳回答 6月13日
  • 创建了问题 6月12日

悬赏问题

  • ¥15 vue请求不到数据,返回状态200,数据为html
  • ¥15 访问url时不会自动调用其 Servlet的doGet()
  • ¥15 用白鹭引擎开发棋牌游戏的前端为什么这么难找
  • ¥15 MATLAB解决问题
  • ¥35 哪位专业人士知道这是什么原件吗?哪里可以买到?
  • ¥15 关于#c##的问题:treenode反序列化后获取不到上一节点和下一节点,Fullpath和Handle报错
  • ¥15 一部手机能否同时用不同的app进入不同的直播间?
  • ¥20 输入import torch显示Intel MKL FATAL ERROR,系统驱动1%,: Cannot load mkl_intel_thread.dll.
  • ¥15 点云密度大则包围盒小
  • ¥15 nginx使用nfs进行服务器的数据共享