欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 备赛蓝桥杯之第十六届模拟赛2期职业院校组第七题:企业微信会议助手(第一问)

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

2025/9/20 1:39:56 来源:https://blog.csdn.net/s1316339343/article/details/146534806  浏览:    关键词:备赛蓝桥杯之第十六届模拟赛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.titlemeeting.value["time"] = res.timemeeting.value["location"] = res.locationparticipants.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变成字符串结构,将获取到的结果再次.thenreturn 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一样,接着找.valueconsole.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])转换为数字类型,并判断他是否小于10if (Number(arrDate.at(2)) < 10) {// 如果小于10,则在它之前加一个字符串0arrDate[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"了
};

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

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词