赞
踩
目录
在微信小程序的开发之中,循环是我们不可避免的会遇到的东西,其中呢,我们使用最多的就是for语句和foreach语句了,今天我们来详细了解一下这两种语句的具体使用方法吧。
- for (语句; 语句; 语句)
- 语句;
-
- for (语句; 语句; 语句) {
- 代码块;
- }
其支持使用break、continue 关键词。
- for (var i = 0; i < 3; ++i) {
- console.log(i);
- if( i >= 1) break;
- }
输出:
- 0
- 1
for语句的使用方法大致就是这样,各种编程语言的for循环语句都是一样的,所以我们就不做过多的讲述了,这里只是给一个简单的示范。
- allArr.forEach((item:any) => {
- console.log(item);
- });
此处allArr为你的数组,item为你的这个数组里面每一个元素的替代值,例如:allArr = [{1},{2},{3},{4}],则item分别为{1}、{2}、{3}、{4},然后在后面的{}则可以对数据进行处理。
foreach作为一种循环语句,嵌套自然是每一个循环语句都要掌握的知识。
- /**
- * 处理数组
- */
- transformData(arrs: any, weekNumber: number, cache: any) {
- let professionArr = cache as any;
- let d = 0;
- // 创建新的数组
- let result: { item: any[]; }[] = [];
- // 初始化每一天的课程数组
- for (let i = 0; i < 7; i++) {
- let dayObj = {
- day: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'][i],
- item: new Array(6) // 创建长度为6的课程数组
- };
- result.push(dayObj);
- }
- arrs.forEach((arr: any) => {
- let professionName = professionArr[d].zy;
- // 获取指定周数的课程数据
- let weekData = arr.week[weekNumber - 1].data;
- d++;
- // 遍历课程数据,将课程安排到新数组中对应的位置
- weekData.forEach((dayObj: { item: any; day: string; }) => {
- let myItems = dayObj.item;
- let dayOfWeek = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'].indexOf(dayObj.day);//查找对应的日期
- let items: { num: any[]; zy: any; }[] = [];
- myItems.forEach((item: any) => {
- let num = item.num;
- if (num.length > 2) {
- let arr = num;
- for (let i = 0; i < num.length / 2; i++) {
- let myArr: any[] = [];
- myArr.push(arr[i * 2]);
- myArr.push(arr[i * 2 + 1]);
- let newItem = { ...item }; // 创建新的对象并复制属性值
- newItem.num = myArr;
- items.push(newItem);
- }
- } else {
- items.push(item);
- }
- });
- items.forEach((arrs: { num: any[]; zy: any; }) => {
- let startTime = arrs.num[0];
- let endTime = arrs.num[1];
- //将专业加到课程之中
- let zy = professionName;
- arrs.zy = zy;
- // 处理课程重叠
- for (let i = (startTime - 1) / 2; i <= (startTime - 1) / 2 + (endTime - startTime) / 2; i++) {
- if (!result[dayOfWeek].item[i]) {
- // 当前时间段没有安排课程,直接放置
- result[dayOfWeek].item[i] = {
- mergedItem: [result[dayOfWeek].item[i], arrs], // 重叠的课程的数组
- };
- } else {
- // 当前时间段有已安排的课程,处理重叠逻辑(例如合并、拆分等)
- result[dayOfWeek].item[i].mergedItem.push(arrs)//向其中推一个
- }
- }
- });
- });
- });
- return result;
- },
在此处我们可以看到我是使用了四个foreach语句对我们的数组进行了处理,其中就存在着foreach语句的嵌套。
就小编个人写小程序的代码来看的话,个人还是在处理数组的时候更喜欢foreach语句一些,它能给到开发者的根据小编的感觉来说,比for语句更加的便捷一些,开发者可以通过自定义的名字直接拿到数据,不需要像for语句中使用for循环中的比如:i,之类的数字来去到数组里面拿数据,当然这是小编自己的总结感受了,希望和各位一起变强呀!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。