js 数组的循环
//数组循环 var list=[ { name:"hq", age:"12" }, { name:"xq", age:"24" }, { name:"gq", age:"32" } ]; //使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显。 for(var i=0;i<list.length;i++){ console.log(list[i]) } /* 遍历数组中的每一项,没有返回值,对原数组没有影响,不支持IE */ list.forEach(function(v,k){ console.log("27forEach",v); //v.age="44"//这样赋值是可以改变原来数组的 }) //map的回调函数中支持return返回值;return的是啥,相当于把数组中的这一项变为啥(并不影响原来的数组,只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了); /* */ list.map(function(v,k,ar){ console.log("38map",v,k,ar); //v.age=44 }) console.log("42",list) //forof可以正确响应break、continue和return语句 for(let val of list){ console.log("44",val); //val.age=44 } //for - in语句用于对数组或者对象的属性进行循环操作。 //主要用于循环对象 let obj={'name':'programmer','age':'22','height':'180'}; for(let i in obj){ console.log(i,obj[i]) } // while (条件) // { // 需要执行的代码 // } var i=0,j=0; while(i<list.length){ console.log("63",i,list[i]); i++ } do{ console.log("82",j,list[j]) j++; }while(j<list.length) /* ES6为Array增加了from函数用来将其他对象转换成数组。 也可以用于数组的循环 */ var objectc={name:"hh"} Array.from(list,function(v,k){ console.log("79",v); //console.log(this);this指向objectc //v.age="55" },objectc); console.log(list);
Object.keys(objectc).forEach(function(v,k){
}) //every,some更多用于判断 //every()是对数组中的每一项运行给定函数,如果该函数对每一项返回true,则返回true。 var num=[10,12,13,15,16,11,13] var b=num.every(function(item,index,arr){ return item>15//所有的都为true才为true,否则false }) console.log(b); //.some()方法,同样是针对数组中的每一个元素,但是这个方法是,只要有一个元素比对结果为true,返回结果就为true,反之要所有的元素比对结果为false才为false //与every()相反 var c=num.some(function(item,index,arr){ return item>15//有其中一个为true就为true,所有false才是false }) console.log("some",c);
参考:
https://www.cnblogs.com/woshidouzia/p/9304603.html
https://www.jb51.net/article/204620.htm
https://www.cnblogs.com/zl-light/p/11482005.html
https://blog.csdn.net/shangyanaf/article/details/80415236
https://blog.csdn.net/a806488840/article/details/89668616 -- every/some
https://www.cnblogs.com/lxz-blogs/p/12807706.html --array.from
https://www.cnblogs.com/kongxianghai/p/7417210.html