当前位置: 首页 > article >正文

备赛蓝桥杯之第十六届模拟赛2期职业院校组第七题:企业微信会议助手(第一问)

提示:本篇文章仅仅是作者自己目前在备赛蓝桥杯中,自己学习与刷题的学习笔记,写的不好,欢迎大家批评与建议


由于个别题目代码量与题目量偏大,请大家自己去蓝桥杯官网【连接高校和企业 - 蓝桥云课】去寻找原题,在这里只提供部分原题代码

本题目为:备赛蓝桥杯之第十六届模拟赛2期职业院校组第七题:企业微信会议助手(第一问)


题目:

经过运行环境运行之后的效果如下:

本题需要做的代码如下:

    const fetchMeetingData = () => {
      // TODO: 待补充代码
      
    };

    const formatDate = (dateStr) => {
      // TODO: 待补充代码
      
    };

 本题目标如下:

  1. 补充 fetchMeetingData 函数,向 js/meetings.json 发送数据请求,将请求到的数据中的 titletimelocation 赋值到 meeting 变量,participants 赋值到 participants 变量,函数需要返回一个 Promise。在 js/index.js 中补充 formatDate 函数,函数返回字符串类型,将函数传入的的日期字符串格式化为 "YYYY-MM-DD" 的形式,例如 2024-9-3 转换为 2024-09-03

js/meetings.json中的数据说明如下:

{
    "title": "项目进度会议",
    "time": "2024-9-3",
    "location": "会议室A",
    "participants": [
        {
            "name": "张三",
            "status": "待确认"
        },
        {
            "name": "李四",
            "status": "待确认"
        }
        ...
    ]
}

  • title : 会议名称。
  • time : 会议时间。
  • location : 会议地点。
  • participants : 参与者列表。

每个参与者对象具有以下属性:

  • name : 参与者名称。
  • status : 参与者目前的状态。

说人话:

        通过相同文件下存过的数据,获取并传入与处理的操作


本题作者想说

答案:

const fetchMeetingData = () => {
    // TODO: 待补充代码
    return fetch('js/meetings.json').then(res => res.json().then((res) => {
        meeting.value["title"] = res.title
        meeting.value["time"] = res.time
        meeting.value["location"] = res.location
        participants.value = res.participants
    }))
};

const formatDate = (dateStr) => {
    // TODO: 待补充代码
    // console.log(dateStr)
    if (!dateStr) return []
    let arrDate = dateStr.split("-")
    if (Number(arrDate.at(2)) < 10) {
        arrDate[2] = "0" + arrDate[2]
    }
    if (Number(arrDate.at(1)) < 10) {
        arrDate[1] = "0" + arrDate[1]
    }
    return arrDate.join("-")
};

作者自我解释版:

const fetchMeetingData = () => {
    // TODO: 待补充代码
    // 发送请求,类似本题是,向同文件下的数据发送请求,所以使用fetch来获取
    // .then即请求之后,将请求结果定义为res,再将res变成字符串结构,将获取到的结果再次.then
    return fetch('js/meetings.json').then(res => res.json().then((res) => {
        // 经过打印meeting后,展示 "RefImpl {__v_isShallow: false, dep: Map(1), __v_isRef: true, _rawValue: {…}, _value: Proxy(Object)}"
        // 这就必须要把数据存到.value中
        console.log(meeting);
        // 经打印meeting.value后,展示"Proxy(Object) {}"
        // 这就说明。不仅要存到.value中,还要定义一些属性以供存储
        console.log(meeting.value)
        // 经打印res后,展示"{title: '项目进度会议', time: '2024-9-3', location: '会议室A', participants: Array(10)}"
        // 这个数组非常的单纯,所以就不需要使用.value了
        console.log(res);
        // 将title存入
        meeting.value["title"] = res.title
        // 将time存入
        meeting.value["time"] = res.time
        // 将location存入
        meeting.value["location"] = res.location
        // 经打印participants后,展示"RefImpl {__v_isShallow: false, dep: undefined, __v_isRef: true, _rawValue: Array(0), _value: Proxy(Array)}"
        // 跟meeting一样,接着找.value
        console.log(participants);
        // 经打印participants.value后,展示"Proxy(Array) {}"
        // 至于要不要再定义属性,还要看一看传入它的需不需要属性
        console.log(participants.value);
        // 经打印res.participants后,展示"[{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]"
        // 这些都是一系列的数组,用不到属性,所以就不需要定义属性
        console.log(res.participants);
        // 将participants存入
        participants.value = res.participants
    }))
};

const formatDate = (dateStr) => {
    // TODO: 待补充代码
    // 本部分其实就是要把"2024-9-3"转化成"2024-09-03"
    // 经打印dateStr后,值得注意的是,有两个dateStr,这就导致当我们直接使用split的时候,会报错
    // 这就说明可能formatDate要比fetchMeetingData执行的还要早
    // 所以在当fetchMeetingData获取到这个值之前可能dateStr就是undefined,这是个注意点
    // 在当fetchMeetingData获取到这个值之后,发现就是"2024-9-3"
    console.log(dateStr)
    // 为了避免之前的undefined影响我们的操作,我们就需要对其设定一个限制,将dateStr返回成一个空数组
    if (!dateStr) return []
    // 这时就可以使用split等数组操作
    // 如果此时数据传过来了,那么我们就要通过split将"2024-9-3"拆成[2024],[9],[3]
    let arrDate = dateStr.split("-")
    // 这时我们就可以对拆完之后的数组进行操作了
    // [第0个属性],[第1个属性],[第2个属性]
    // 将数组中第2个属性(这里指的是[3])转换为数字类型,并判断他是否小于10
    if (Number(arrDate.at(2)) < 10) {
        // 如果小于10,则在它之前加一个字符串0
        arrDate[2] = "0" + arrDate[2]
    }
    // 同理,将第1个属性(这里指的是[9])相同的转化
    if (Number(arrDate.at(1)) < 10) {
        arrDate[1] = "0" + arrDate[1]
    }
    // 此时就已经有了转化后的数组,可是此时还是[2024],[09],[03]的格式
    // 时是我们就需要将这个数组以"-"为连接拼接起来形成一个字符串
    return arrDate.join("-")
    // 这时返回的就是"2024-09-03"了
};

感谢观看此篇文章,谢谢大家的支持,本片文章只是我自己学习的历程,有些写的不好地方欢迎大家交流改动。

长路漫漫,我们还需努力!


http://www.kler.cn/a/612363.html

相关文章:

  • 游戏引擎学习第187天
  • Apache Shiro 统一化实现多端登录(PC端移动端)
  • 玩转vue-router的简单用法
  • Python----计算机视觉处理(Opencv:图像旋转:插值方法,边缘填充方法)
  • 【计算机网络之以太网详解】
  • 【DeepSeek大语言模型】AI智能体开发与大语言模型的本地化部署、优化技术
  • yolo系列算法最新进展
  • TDengine 集群节点管理
  • WebLogic中间件常见漏洞
  • JavaScript基础-定时器
  • 解决·CSS·font-weight给数字值没有反应
  • 注册中心之Nacos相较Eureka的提升分析
  • 朴素贝叶斯:文本处理中的分类利器
  • SvelteKit 最新中文文档教程(12)—— 高级路由
  • Appium中元素定位的注意点
  • 重学Java基础篇—什么是快速失败(fail-fast)和安全失败(fail-safe)?
  • CSS终极指南:从基础到高级实践
  • JVM如何判断一个对象可以被回收
  • 【Python】multiprocessing - 进程隔离
  • 高级数据结构04动态规划