JavaScript(循环)
JavaScript的循环有两种,一种是for 循环,通过初始条件,结束条件和递增条件来循环执行语句块:
var x = 0;
var i;
for(i=1; i <=10000; i++){
x = x +i;
}
分析一下for循环的控制条件:
i=1 这是初始条件,将变量i置为1;
i <=10000 这是判断条件,满足时就继续循环,不满足就退出循环。
i ++ 这是每次循环后的条件,由于每次循环后变量i 都会 加1,因此它终将在若干次循环后不满足判断条件 i <=10000而退出循环。
for 循环最常用的地方是利用索引来遍历数组。
var arr=['Apple','Google','Microsoft'];
var i, x;
for(i=0;i<arr.length;i++){
x=arr[i];
alert(x)
}
for循环的3个条件都是可以省略的,如果没有退出循环的判断条件,就必须使用break语句退出循环,否则就是死循环:
for.......in
for 循环的一个变体是for....in 循环,他可以把一个对象的所有属性一次循环出来。
var o = {
name:'Jack,
age:20,
city:'Beijing'
}
for(var key in o){
alert(Key) //"name" "age","city"
}
要过滤掉对象继承的属性,用hasOwnProperty()来实现:
var o = {
name: 'Jack',
age: 20,
city: 'Beijing'
};
for (var key in o) {
if (o.hasOwnProperty(key)) {
alert(key); // 'name', 'age', 'city'
}
}
由于Array也是对象,而它的每个元素的索引被视为对象的属性,因此,for ... in循环可以直接循环出Array的索引:
var a = ['A','B','C'];
for(var i in a){
alert(i); // '0' '1' '2'
alert(a[i]); // ‘A’,'B','C'
注意: for ... in对Array的循环得到的是String而不是Number。
}
Map和Set
JavaScript的默认对象表示方式{} 可以视为其语音中的Map或Dictionary 的数据结构,即一组键值对。
但是JavaScript的对象有个小问题,就是键必须是字符串。但实际上Number或者其他数据类型作为键也是非常合理的。
Map 是一组键对的结构,具有极快的查找速度。
var name =['Michael','Bob','Tracy'];
var scores =[95,75,85];
给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,Array越长,耗时越长。
如果用Map实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢
var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
m.get('Michael'); // 95
初始化Map需要一个二维数组,或者直接初始化一个空Map。
var m = new Map(); // 空Map
m.set('Adam', 67); // 添加新的key-value
m.set('Bob', 59);
m.has('Adam'); // 是否存在key 'Adam': true
m.get('Adam'); // 67
m.delete('Adam'); // 删除key 'Adam'
m.get('Adam'); // undefined
Set
Set 和Map 类似,也是一个组合key的集合,但不存储value.由于key不能重复,所以,在Set中,没有重复的key。
要创建一个Set,需要提供一个Array 作为输入,或直接创建一个空Set:
var s1= new Set(); // 空Set
var s2 =new Set([1,2,3]); // 含1,2,3
重复元素在Set 中自动被过滤。
var s= new Set([1,2,3,3,'3']);
s: //Set{1,2,3,'3'}
注意数字3和字符串'3'是不同的元素。
通过add(key)方法可以添加元素到Set中,可以重复添加,但不会有效果:
>>>s.add(4)
>>>s
{1,2,3,4}
>>>s.add(4)
>>>s
{1,2,3,4}
通过delete(key)方法可以删除元素:
var s=new Set([1,2,3])
s://Set{1.2.3}
s.delete(3);
s://Set{1,2}
转载于:https://www.cnblogs.com/manxin/p/5519134.html
JavaScript(循环)相关推荐
- JavaScript循环结构(1)
JavaScript循环结构语法和java和c#差不多,可以参考c#和java笔记复习
- Javascript循环删除数组中元素的3种方法
本文主要跟大家分享了关于Javascript循环删除数组中元素的几种方法,分享出来供大家参考学习,下面与微点阅读小编一起来看看详细的介绍: 问题 大家在码代码的过程中,经常会遇到在循环中移除指定元素的 ...
- 红色景点,纪念馆打卡拍照小程序,打卡完成任务,JavaScript 循环 i < cars.length;
<h1>JavaScript 循环</h1><p id="demo"></p><script> var cars = [ ...
- JavaScript 循环中调用异步函数的三种方法,及为什么 forEach 无法工作的分析
JavaScript 循环中调用异步函数的三种方法,及为什么 forEach 无法工作的分析 业务分析 初版的问题 解决方案 传统的 for 循环 不使用 for 循环的解决方案 分析 forEach ...
- JavaScript循环延时
JavaScript循环延时 1.setTimeout 2. For 循环加 setTimeout 3. 镶嵌使用 setTimeout 1.setTimeout setTimeout 使用结构:se ...
- JavaScript循环打印案例
JavaScript循环打印案例 一.打印5行5列 * 运行代码 var str = '';for (var i = 1; i <= 5; i++) {//外部控制换行for (var j = ...
- javascript 循环语句 while、do-while、for-in、for用法区别
本文章介绍了在学习javascript中的循环语句的用法,包while.do-while.for-in.for它们之间的区别,也是常用的循环语句了,有需要的朋友可以了解一下 前两个唯一的差别就是循环和 ...
- JavaScript循环及练习
switch( ) { case } <script type="text/javascript">switch(a=3){case 1:alert(a=1)case ...
- javascript循环语句及函数
循环语句 1.While 语法: while (exp) { //statements; } 说明: while (变量<=结束值) { 需执行的代码 } 例1: var i = 1; whil ...
- JavaScript学习——JavaScript 循环
JavaScript for 循环 使用for循环 <!DOCTYPE html> <html> <head> <meta charset="utf ...
最新文章
- 路由算法与路由协议概述
- VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNTION(翻译)
- Python3--爬取数据之911网站信息爬取
- CSS代码检查工具stylelint
- Wechat的支付逻辑流程
- iPhone 12 Max电池容量曝光:老扎心了
- python虚拟环境中安装diango_创建python虚拟环境,安装django,创建一个django项目,在项目中创建一个应用(ubuntu16.04)...
- iview兼容ie8_iview在ie9及以上的兼容问题解决方案__Vue.js__JavaScript__前端__iView
- 如何理解什么是放射?
- 长跑常用必知的关键字及100条跑步的建议
- 读赵凯华之《新概念物理教程.热学》
- access 微软以外 编辑_如何在 Microsoft Access 中修改查询属性
- Ubuntu 更改系统语言
- 蒙特卡罗仿真(1):入门求生指南(Python实例)
- 面对局域网用户滥用网络执法官,p2p终结者等网管软件的破解方法
- android中流媒体
- word文档中英文单词之间空格间距过大问题如何解决
- 惠普178nw芯片清零_HP打印机清零方法(冷复位恢复出厂设置)
- 遇到的问题记录:__init__() takes 1 positional argument but 2 were given
- Vue中手动导出Element表格为pdf/word/excel格式