原文:
https://www.cnblogs.com/yizhilin/p/7344675.html
针对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]);
3,forEach,ES5推出的,数组自带的循环,主要功能是遍历数组,实际性能比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 temp=arr.map(function(val,index){
console.log(val);
return val*val
console.log(temp);
forEach、map都是ECMA5新增数组的方法,所以ie9以下的浏览器还不支持
5,for-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对象遍历:
1,for-in遍历
for-in是为遍历对象而设计的,不适用于遍历数组。
遍历数组的缺点:数组的下标index值是数字,for-in遍历的index值"0","1","2"等是字符串
for (var index in arr){
console.log(arr[index]);
console.log(index);
原文:https://www.cnblogs.com/yizhilin/p/7344675.html针对js各种遍历作一个总结分析,从类型用处:分数组遍历和对象遍历;还有性能,优缺点等。JS数组遍历:1,普通for循环,经常用的数组遍历var arr = [1,2,0,3,9]; for ( var i = 0; i <arr.length; i++){ con...
鉴于循环目标是个
对象,length是为undefined,用map等对
数组的循环方法不行,
对象就用此下方法
for(var key in _this.lists.medicines){
medicineName +=_this.lists.medicines[key].medicine.medicinePublic.medicineName + ",";
你可以使用 JavaScript 中的循环结构,如 for 循环或 forEach() 方法来遍历一个列表对象。
下面是一个使用 for 循环遍历一个列表对象的例子:
const myList = ['apple', 'banana', 'orange'];
for (let i = 0; i < myList.length; i++) {
console.log(myList[i])...
第一种:for循环,也是最常见的
const arr = [11, 22, 33, 44, 55, 66, 77, 88];
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
打印结果:
第二种:forEach()
1.)forEach() 遍历普通数组
const arr = [11, 22, 33, 44, 55, 66, 77, 88];
arr.forEach(item => {
更新时间:2020年06月16日 14:20:46 作者:by.Genesis
这篇文章主要介绍了JS中5种遍历对象的方式,文中讲解非常的细致,帮助你更好的了解JS,感兴趣的朋友可以参考下
几天前一个小伙伴问我Object.getOwnPropertyNames()是干什么用的
平时还真没有使用到这个方法,一时不知如何回答
从方法名称来分析,应该是返回的是对象自身属性名组成的数组
那和Object.keys()方法不就一样了吗
感觉事情并不这么简单,...
对
数组中每个元素执行一次ok函数,知道某个元素返回true,则直接返回true。如果都返回false,则返回false检查整个
数组中是否有满足元素。 private some(id: number) {
const arr = [
{ cityId: 195, cityName: '深圳'},
{ cityId: 196, cityName: '北京'},
{ cityId: 198, cityName: '上海'}
对于数组或者对象的遍历,筛选,提取等操作是前端开发中经常有的需求,不要再只会写普通的for循环了,虽然普通的for循环已经能完成一切的功能的,是一个特殊方法,但是针对各种需求,js给我们提供了许多方法,来更优雅的遍历,来学习一下吧!
1. for in
for in 循环,数组和对象都可以遍历,item为array的下标,或者object的key这样的代码,比起for循环可读性能强一些。
2.for of
与for in 不同的是,for of只能遍历数组,item为数组元素的值
3.Object.keys
为了解决数组遍历时间过长的问题,可以考虑以下几种方法:
1. 使用 forEach() 代替 for 循环,因为 forEach() 是对数组中的每个元素执行回调函数的一种最佳实践。
2. 使用 map() 或 reduce() 函数进行操作,可以更快地处理大型数组。
3. 使用 web workers,将大型数组分割成多个较小的数组,在多个线程中进行处理。
4. 使用高性能库,如 lodash,可以更快地处理大型数组。
5. 减少不必要的操作,如对数组进行预处理,缩小遍历范围等。