遍历种类
forEach 对数组的循环的函数,不会改变数组值map 创建新数组,返回元素调用函数返回的结果every 测试一个数组内所有的数组是否都能通过某个指定函数的测试,返回布尔值for循环 常用的循环while循环 先判断后执行do-while循环,先执行后判断,至少执行一次for-of 数组、set、map等都可以使用for-in 主要用于对象遍历遍历对象,获取对象属性key的数组,遍历,该数组,使用的方法主要有Object.keys(),Object.getOwnPropertyNames
forEach
对数组的循环的函数,不会改变数组值
数组对象例子
var array1 = [{name:'张三丰',sex: '男'}]; array1.forEach(function(item) { item['name'] = 'dkdkdk'; console.log(item); }); console.log(array1) 输出: > Object { name: "dkdkdk", sex: "男" } > Array [Object { name: "dkdkdk", sex: "男" }]
普通数组例子
var array1 = [1,2,3]; array1.forEach((currentValue,index) => { currentValue++ console.log(currentValue); }); console.log(array1) 输出: > 2 > 3 > 4 > Array [1, 2, 3]
map
创建新数组并返回调用函数的值
例子
var array1 = [1,2, 3, 4]; const map1 = array1.map(x => x * 2); console.log(map1); 输出: > Array [2, 4, 6, 8]
every
检查数组内的元素是否都满足某个函数的检验,返回布尔值
例子
var array1 = [1, 30, 39, 49, 10, 13]; let bl = array1.every((currentValue) => { return currentValue > 40 }) console.log(bl) 输出: > false
for循环
将长度缓存起来,避免重复获取长度,数据量较大的时候优化效果比较明显
var arr = [1,2,3,4,5,6]; for ( var i = 0,len = arr.length; i <len; i++){ console.log(arr[i]); }
while循环
类似普通for循环,只是语句分散写开
let num = 1 while(num < 10) { console.log(num) num ++ }
do-while循环
类似普通for循环,只是语句分散写开
let num = 1 do{ console.log(num) num ++ }while(num < 10)
for-of循环
具有Symbol.iterator属性,就可以使用for…of遍历,返回的是值不是索引js循环对象,可以响应break,continue,return语句
var array1 = [1, 30, 39, 49]; for(let item of array1) { console.log(item) } 输出: > 1 > 30 > 39 > 49
for-in循环
主要用于遍历对象for(key in object),key是字符串类型,能读取对象自身上面的成员属性,也会读出原型链遍历出的对象的原型属性。如果只使用当前对象本身的属性,使用hasOwnProperty或getOwnPropertyNames()判断是不是当前对象的属性
迭代的顺序是依赖于执行环境的,所以数组遍历不一定按次序访问元素。因此当迭代访问顺序很重要的数组时,最好用整数索引去进行for循环(或者使用 Array.prototype.forEach() 或 for…of 循环)
var array1 = [1, 30, 39, 49]; for(let item of array1) { console.log(item) } 输出: > 1 > 30 > 39 > 49
遍历对象
除去for-in之外,还可以以使用Object.keys(),Object.getOwnPropertyNames()获取对象的属性数组,然后遍历该属性数组js循环对象,相关例子如下:
var obj = {'0':'a','1':'b','2':'c'}; Object.getOwnPropertyNames(obj).forEach(function(key){ console.log(key,obj[key]); }); Object.keys(obj).forEach(function(key){ console.log(key,obj[key]); });
限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688