js循环
2019-08-14 10:18:59来源:博客园 阅读 ()
var arr =[1,2,3,4,5,6] //全文通用数组,个别除外
while
var i=0; while(i<=arr.length-1){ //条件需要有限制,故<=,否则会死循环 console.log(arr[i],i) i++;//更新下标 }
do while
var i=0; do{ console.log(arr[i],i) i++; }while(i<=arr.length-1);//下标从0开始,length-1
for
for(var i = 0;i<arr.length;i++){ console.log(i,arr[i]) }
for in
for(key in arr){ console.log(key,arr[key]) }
ES6语法
//Array.fromIE不识别,IE的兼容写法。
//可以把类数组对象转换为真正的数组
if(!Array.from){ Array.from = function (el) { return Array.apply(this, el); } }
Set
var a=[1,1,1]; var b=new Set(a);//去重 console.log(b) b.add('li')//添加 b.delete('li') //删除 b.has('li') //返回true false; b.clear()//清空
Map
var eMap = new Map([ ['a', 1],['b', 2],['c', 3] ]); eMap.get('a') //1 //获取值 eMap.has('b')//true //检测key是否存在,返回true false; eMap.delete('c') //删除 eMap.set('c',3) //添加 eMap.clear()//清空 //相当于返回一个新数组 arr.map(function(x){ if(x==3){
return x*3
} return x
}) arr.map((x)=>{ if(x==3){
return x*3
} return x })
forEach
//两个参数 x数组内容,y数组下标
arr.forEach((x,y)=>{ console.log(x,y) })
//不支持IE9以下,但不包括IE9,IE8兼容写法
//原文链接:https://www.cnblogs.com/guxiaosao/p/5179842.html
if ( !Array.prototype.forEach ) { Array.prototype.forEach = function forEach( callback, thisArg ) { var T, k; if ( this == null ) { throw new TypeError( "this is null or not defined" ); } var O = Object(this); var len = O.length >>> 0; if ( typeof callback !== "function" ) { throw new TypeError( callback + " is not a function" ); } if ( arguments.length > 1 ) { T = thisArg; } k = 0; while( k < len ) { var kValue; if ( k in O ) { kValue = O[ k ]; callback.call( T, kValue, k, O ); } k++; } }; }
for of
//支持大多数类数组对象 参考https://developer.mozilla.org/en-US/docs/Web/API/NodeList
//不支持普通对象遍历 如:{ } 会报错 is not iterable
//IE不支持
for(var i of arr){ console.log(i,arr[i-1])//for of的下标从1开始,故减1 }
//部分类数组对象 //原文链接: https://www.cnblogs.com/baiyunke/p/7821299.html
// 字符串 var str = "hello"; for (let s of str) { console.log(s); // h e l l o } // DOM NodeList对象 let paras = document.querySelectorAll("p"); for (let p of paras) { p.classList.add("test"); } // arguments对象 function printArgs() { for (let x of arguments) { console.log(x); } } printArgs('a', 'b');// 'a' 'b'
//循环控制语句
//break:当前条件成立且执行后跳出。 //continue:跳过当前成立条件,继续执行循环。 //for循环,continue之后执行语句,是跳过条件的新下标。 //while、do-while循环,continue需放到i++之后使用,否则,continue将跳过i++进入死循环。 for(var i = 1; i < 10; i++){ if(i == 4){ continue; } console.log(i);//1 2 3 5 6 7 8 9 } for(var i = 1; i < 10; i++){ if(i == 4){ break; } console.log(i);//1 2 3 }
//箭头函数单行语句可以简写,如:arr.map((x)=>x);
//ES6新增了 遍历器(Iterator)机制 Iterator详解 : http://es6.ruanyifeng.com/#docs/iterator
//ES6语法推荐使用编译插件来处理兼容性问题 如:babel
//以上为理解、原文、参考、暂时就想到这么多
原文链接:https://www.cnblogs.com/grue/p/11244667.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- javascript 中关于array的常用方法详解 2020-03-16
- 关于JS array的数组 2020-03-08
- 高性能JavaScript循环语句和条件语句 2020-02-21
- javascript中怎样使用array数组 2020-02-20
- 详解JSONObject和JSONArray区别及基本用法 2020-01-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash