计算机网站建设体会,王天野演员,专业制作小程序的公司,国外做锅炉的网站针对js各种遍历作一个总结分析#xff0c;从类型用处#xff1a;分数组遍历和对象遍历#xff1b;还有性能#xff0c;优缺点等。 JS数组遍历#xff1a;
1#xff0c;普通for循环#xff0c;经常用的数组遍历
var arr [1,2,0,3,9];for ( var i 0; i arr.length…针对js各种遍历作一个总结分析从类型用处分数组遍历和对象遍历还有性能优缺点等。 JS数组遍历
1普通for循环经常用的数组遍历
var arr [1,2,0,3,9];for ( var i 0; i arr.length; i){console.log(arr[i]);
} 2优化版for循环:使用变量将长度缓存起来避免重复获取长度数组很大时优化效果明显
for(var j 0,len arr.length; j len; j){console.log(arr[j]);
} 3forEachES5推出的,数组自带的循环主要功能是遍历数组实际性能比for还弱
arr.forEach(function(value,i){console.log(forEach遍历:i--value);})
forEach这种方法也有一个小缺陷你不能使用break语句中断循环也不能使用return语句返回到外层函数。 4,map遍历map即是 “映射”的意思 用法与 forEach 相似
arr.map(function(value,index){console.log(map遍历:index--value);
});
map遍历支持使用return语句支持return返回值
var temparr.map(function(val,index){console.log(val); return val*val
})
console.log(temp);
forEach、map都是ECMA5新增数组的方法所以ie9以下的浏览器还不支持 5for-of遍历 是ES6新增功能
for( let i of arr){console.log(i);
}
for-of这个方法避开了for-in循环的所有缺陷与forEach()不同的是它可以正确响应break、continue和return语句
for-of循环不仅支持数组还支持大多数类数组对象例如DOM NodeList对象。
for-of循环也支持字符串遍历 JS对象遍历
1for-in遍历
for-in是为遍历对象而设计的不适用于遍历数组。
遍历数组的缺点数组的下标index值是数字for-in遍历的index值0,1,2等是字符串
for (var index in arr){console.log(arr[index]);console.log(index);
} 2、Object.keysobj和 Object.valuesobj分别获取对象键、值组成的数组
const obj {id:1,name:zhangsan,age:18
}console.log(Object.keys(obj))console.log(Object.values(obj)) 3、使用Object.getOwnPropertyNames(obj)
获取包含对象自身的所有属性包含不可枚举属性的数组可 遍历可以获取key和value
const obj {id:1,name:zhangsan,age:18}Object.getOwnPropertyNames(obj).forEach(function(key){console.log(key ---obj[key])})