龙空技术网

js遍历数组和对象

陆璐璐 172

前言:

眼前同学们对“jsfor循环数组对象”大概比较关心,咱们都想要剖析一些“jsfor循环数组对象”的相关内容。那么小编在网摘上收集了一些关于“jsfor循环数组对象””的相关资讯,希望同学们能喜欢,看官们一起来学习一下吧!

遍历种类

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 = 1while(num < 10) { console.log(num) num ++}

do-while循环

类似普通for循环,只是语句分散写开

let num = 1do{ console.log(num) num ++}while(num < 10)

for-of循环

具有Symbol.iterator属性,就可以使用for...of遍历,返回的是值不是索引,可以响应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()获取对象的属性数组,然后遍历该属性数组,相关例子如下:

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]);});

标签: #jsfor循环数组对象