JS(8)、for循环
for循环: for(A; B; C) {D}
这里的大括号不是函数,是代码块
var arr = ["hello", "css", "js", "node"];
for (var i = 0; i < 4; i++) {console.log(i, arr[i]);
}; // 打印 0 'hello' 1 'css' 2 'js' 3 'node'var arr = [20, 3, 4, 5, 10, 6, 20, 7, 35, 45, 6, 56, 87, 768];
// 打印数据的第二到第六个元素
for (var i = 1; i < 6; i++) {console.log(arr[i]);
};// 打印这个数组的下标为奇数的元素
var arr = [20, 3, 4, 5, 10, 6, 20, 7, 35, 45, 6, 56, 87, 768];
for (var i = 1; i < arr.length; i += 2) {console.log(arr[i]);
};var arr = [];
for (var i = 0; i < 4; i++) {arr[i] = function () {console.log(i);}
};
arr[0](); // 4
arr[1](); // 4
// i++最后运行
for中的业务条件筛选
var arr = [{age: 20,name: "karen",rank: 580},{age: 14,name: "jack",rank: 480},{age: 19,name: "mary",rank: 600},{age: 12,name: "shae",rank: 680}
];
// 打印数组中对象的名字
for (var i = 0; i < arr.length; i++) {console.log(arr[i].name);
};// 打印年龄大于18岁的对象的名字
for (var i = 0; i < arr.length; i++) {if(arr[i].age>18){console.log(arr[i].name);}
};// 打印年龄大于18 而且rank大于480的对象的名字
for(var i = 0; i < arr.length; i++){if(arr[i].age > 18 && arr[i].rank > 480){console.log(arr[i].name);}
};// 打印年龄小于18 而且rank大于400的对象的名字拼接一个字符串"少年班",大于等于18 rank大于等于480的名字拼接"普通班"
for (var i = 0; i < arr.length; i++) {if (arr[i].age < 18) {if (arr[i].rank > 400) {console.log(arr[i].name + "-少年班")};} else if (arr[i].rank >= 480) {console.log(arr[i].name + "-普通班");}
};
var arr = [{id: 123,text: "内容1",created_at: "2022-04-28 19:22",user: {name: "karen",online_status: 1}},{id: 123,text: "内容2",created_at: "2022-04-27 19:22",user: {name: "jack",online_status: 0}},{id: 123,text: "内容3",created_at: "2022-04-28 19:12",user: {name: "marry",online_status: 1}}
];// 打印每一个对象的text内容 而且在内容后面拼接 在线/不在线
for (var i = 0; i < arr.length; i++) {console.log(arr[i].text);if (arr[i].user.online_status == 1) {console.log(arr[i].text + "--在线");} else if (arr[i].user.online_status == 0) {console.log(arr[i].text + "--不在线");}
};
for的嵌套和业务混合
for循环该怎么嵌套:
1. 不要管内部的for与外部的for的执行的问题 ==> 每一个for都是遍历自己的数组
2. for内部有条件语句和数据处理 得到了一个数组 然后用for去遍历它
var arr3 = [100, 200, 300, [2, 3, 5, 4],{name:"karen"}];
// 取出arr3数组中每一个元素(如果是数组 再取出数组中的元素)
for (var i = 0; i < arr3.length; i++) {if (arr3[i] instanceof Array) {for (var j = 0; j < arr3[i].length; j++) {console.log(arr3[i][j]);}} else {console.log(arr3[i]);}
};// 打印arr数组中的所有字符串
var arr = [{name: "karen",its: ["css", "js", "html"],books: ["book1", "book5"]},{name: "jack",its: ["nodejs", "html"],books: ["book2", "book3", "book6"]},{name: "mary",its: [],books: ["book2"]}
];/* 1. 遍历arr 取出每一个对象2. obj取出它的每一个成员2.1 成员是name直接打印2.2 如果成员是its 是个数组(遍历它)2.3 成员是books 是个数组(遍历它)
*/for (var i = 0; i < arr.length; i++) {var obj = arr[i];console.log(obj.name);for (var j = 0; j < obj.its.length; j++) {console.log(obj.its[j]);}for (var k = 0; k < obj.books.length; k++) {console.log(obj.books[k]);}
};
JS(8)、for循环相关推荐
- 原生js循环展示dom_【前端面试】用一道题讲 js 的事件循环队列
昨天去面了滴滴,一口气面了三面,考了 promise 和事件循环.之前的猿辅导也考察了这些,几乎所有的大厂中厂都一定会考原生 js 的事件循环队列. 今天,我把昨天考察的原题拿出来分析一下. setT ...
- JS中for循环里面的闭包问题的原因及解决办法
JS中for循环里面的闭包问题的原因及解决办法 参考文章: (1)JS中for循环里面的闭包问题的原因及解决办法 (2)https://www.cnblogs.com/ZinCode/p/555190 ...
- vue.js根据数据循环生成表格_vue.js循环for(列表渲染)详解
vue.js循环for(列表渲染)详解 一.总结 一句话总结: v-for {{ item.message }} var example1 = new Vue({ el: '#example-1', ...
- [js] 使用js实现一个循环队列
[js] 使用js实现一个循环队列 const queue = [] let queueRunning = false let loopTimer = null const loop = task = ...
- JS实现图片循环滚动
之前在前端的时候有遇到这样一个问题,实现 JS 图片的循环滚动,然后鼠标移入的时候停止滚动,鼠标移开继续滚动,这里无非就是设置了一个定时器,鼠标移上时清除定时器达到滚动停止的目的,鼠标移开时重设定时器 ...
- js中for循环调用回调函数,一直循环最后一个
js的for循环中使用回调函数,获取到的值总是最后一个值?_MLAY-CSDN博客_js 循环回调函数
- js结束当前循环关键词_干货||什么是事件循环机制
事件循环机制 经常有小伙伴问到我什么是 js 的事件循环机制,这里我就简单来给这些有困惑的小伙伴进行一下解答. 我将从下面几个方面来循序渐进的为大家来进行讲解: 区分进程和线程 浏览器的多进程 浏览器 ...
- js中的循环(跳过(continue)和中断执行(break))
js中的循环(跳过(continue)和中断执行(break)) js循环中可以在循环时是可以中断后续执行和跳过的 看下面这个栗子 //计算1~100之间的和 //我们没有学习过循环之前,使用的做法, ...
- 分别用marquee和div+js实现首尾相连循环滚动效果
分别用marquee和div+js实现首尾相连循环滚动效果,特效代码非常精简,仅3行实现! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 T ...
- d3.js transition无限循环
d3.js transition无限循环 利用d3.js的 transition实现无限循环.在循环结束后添加一个回调,无限循环就回调自己就可以了.·.on('end,funame),.下面通过d3在 ...
最新文章
- EXCEL基础篇(二)
- 业务上云后,58到家运维平台的演进之路(含成本规划与监控建议)
- python_104_面向对象总结
- 2020-11-24(dll注入的N种搞法)
- 深入分析线程池的实现原理
- jvm的client与server工作模式
- Cloudflare推出域名注册服务:不赚利润只收取成本费
- xSeries 232双机热备份配置(塔式)
- vue制作echart图表随着画面等比例放大缩小
- CTCconnectionist temporal classfication: labelling unsegmented sequence data with recurrent(一)
- VS2017下搭建OPEN CASCADE
- 同步七进制计数器设计
- A short theory of channel flow
- 【NiosII训练】第二篇、FPGA驱动AD9854高级篇
- n以内的最多因子数的数 n=1e18
- 小程序长按识别公众号二维码、个人微信号、企业微信号、微信群、-已实现
- Mysql占用CPU过高排查过程及可能优化方案
- fdisk命令 – 磁盘分区
- 问卷调查网站制作-前后端开发
- 吉大计算机专业有名的导师,2019吉林大学计算机科学与技术学院导师简介:申铉京...