js数组遍历和对象遍历

针对js各种遍历作一个总结分析,从类型用处,分析数组和对象各种遍历使用场景,优缺点等

JS数组遍历:

1,普通for循环,经常用的数组遍历

var arr = [1,2,0,3,9,10,20,30];
for ( var i = 0; i <arr.length; i++){
console.log(arr[i]);
}

2,优化版for循环:使用变量,将长度缓存起来,避免重复获取长度,数组不多的时候和普通for循环一样,数组很大时优化效果明显

var arr=[1,2,3,4,5,10,20,30];
for(var i=0,len=arr.length;i<len;i++){
console.log(arr[i]); }

3, 使用for in方法 进行遍历数组

  var arr = [1,2,3,10,15];
for(var index in arr){
// console.log(index);
console.log(index,arr[index]);
  } //所以数组的遍历中千万不要用for in,我们一般对对象的遍历使用。同时上面的i变量是string,并不是number

4, 使用for of 方法进行遍历数组,常用for of  性能比较好


var arr=[1,2,6,5,8];
for(var value of arr){
//console.log(value);//打印出来是值
console.log(arr); //打出来是一个数组
}

5, 使用forEach方法 ES5推出来的 数组自带循环,主要功能遍历数组,性能不好

   var arr=[,,,,];
var forEach= arr.forEach(function(value,index){ // 第一参数是值,第二个参数是索引
console.log('forEach数组:'+index+"--"+value);
});
    console.log(forEach); // undefined
// forEach循环的缺点就是,你不能使用break语句中断循环,也不能使用retrun返回到外层函数

6, 使用map方法遍历数组,和forEach使用方式以及语法一样,但是性能比forEach好很多,推荐使用

 var arr=[1,2,6,5,8];
var arr=[1,2,6,5,8];var dd= arr.map(function(value,index){// 第一参数是值,第二个参数是索引
      console.log('map数组:'+index+"--"+value);
      retrun value*2;
});
console.log(dd);
注意:map遍历数组方式支持retrun,并且返回一个新的数组。

JS对象遍历:

1.for in 来遍历对象

  var object={
name:"张三",
age:18,
sex:"男",
sing:function(){
console.log(this.name+":"+"八九不离十");
}
};
for(var key in object ){
console.log(key); //打印出来是属性名字
console.log(object);// 打印出来是对象
//console.log(key,object.sing());
}

jQuery遍历数组和对象:

1.each遍历数组

 var arr=["a","b","c","d","e"];
$.each(arr,function(key,item){
console.log(item[0]);//是值
 console.log(key);//是索引
console.log("arr:"+key+"--"+item);
});

2.each遍历对象

var obj = { one:1, two:2, three:3, four:4};
$.each(obj,function(key,value){
console.log("obj:"+key+"--"+value);
});
//结果:

     obj:one--1
    obj:two--2
    obj:three--3
    obj:four--4

 

JavaScript中遍历数组和对象的方法的更多相关文章

  1. javaScript中Math内置对象基本方法入门

    概念 Math 是javaScript的内置对象,包含了部分数学常数属性和数学函数方法. Math 不是一个函数对象,用户Number类型进行使用,不支持BigInt. Math 的所有属性与方法都是 ...

  2. JavaScript中,数组和对象的遍历方法总结

    循环遍历是写程序很频繁的操作,JavaScript 提供了很多方法来实现. 这篇文章将分别总结数组和对象的遍历方法,新手可以通过本文串联起学过的知识. 数组遍历 方法一:for 循环 for 循环是使 ...

  3. Javascript中遍历数组方法的性能对比

    Javascript中常见的遍历数组的方法 1.for循环 for(var i = 0; i < arr.length; i++) { // do something. } 2.for循环的改进 ...

  4. javascript 中遍历数组的简单方法

    在Javascript中有自带方便遍历数组的方法(此方法非彼方法不要误会哦): 1 .利用for( index in array ){}; 2.利用 array.forEach( function(e ...

  5. vue遍历数组和对象的方法以及他们之间的区别

    前言:vue不能直接通过下标的形式来添加数据,vue也不能直接向对象中插值,因为那样即使能插入值,页面也不会重新渲染数据 一,vue遍历数组   1,使用vue数组变异方法 pop() 删除数组最后一 ...

  6. JS中遍历数组、对象的方式

    1.标准的for循环遍历数组 //不打印自定义属性和继承属性 var array = [1,2,3]; for (var i = 0; i < array.length; i++) { cons ...

  7. JavaScript中的数组和对象 增删遍

    由于 JavaScript 的语言特性,我们可以向通用对象动态添加和删除属性.所以 Object 也可以看成是 JS 的一种特殊的集合. 虽然这个集合的 key 只能是 String 类型,不像 Ja ...

  8. JavaScript中遍历数组 最好不要使用 for in 遍历

    先看一段代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  9. JavaScript中遍历数组,最好不要用for...in

    先看一段代码 var arr = [2,3,4,5]; for(var i = 0; i < arr.length; i++){ console.log(i,"类型:"+ty ...

随机推荐

  1. PHP-CPP开发扩展(四)

    PHP-CPP是一个用于开发PHP扩展的C++库.本节讲解如何在C++中调用PHP函数. 调用PHP函数 调用普通函数 // call a function from user space Php:: ...

  2. JStorm-介绍

    1.概述 JStorm 是一个类似于 Hadoop 的MapReduce的计算系统,它是由Alibaba开源的实时计算模型,它使用Java重写了原生的Storm模型(Clojure和Java混合编写的 ...

  3. eosio.cdt:EOS智能合约工具集

    目前EOS已经迎来了1.5.x时代,很多内容都有了较大的改变.其中智能合约的工作流程发生了改变,EOSIO为智能合约提供了独立且功能完整的工具集eosio.cdt.该工具集基于WASM平台,可解耦于e ...

  4. LoadRuner12.53教程(二)

    使用HP Web访问示例应用程序 shǐ使   yòng用   H   P   W   e   b   fǎng访   wèn问   shì示   lì例   yìng应   yòng用   chén ...

  5. HashMap中ConcurrentModificationException异常解读

    HashMap是一个线程不安全的集合,如果在遍历的过程中同时对该集合进行修改操作,例如put,add,remove等,会抛出java.util.ConcurrentModificationExcept ...

  6. Hibernate学习(三)———— 一对多映射关系

    序言 前面两节讲了hibernate的两个配置文件和hello world!.还有hibernate的一级缓存和三种状态,基本上hibernate就懂一点了,从这章起开始一个很重要的知识点,hiber ...

  7. 线段树(segment tree)

    线段树是一种二叉搜索树,它的每一个结点对应着一个区间[L, R],叶子结点对应的区间就是一个单位区间,即L == R.对于一个非叶子结点[L, R],它的左儿子所表示的区间是[L, (L +R)/2] ...

  8. [转]nodejs之cordova 跨平台开发

    本文转自:https://blog.csdn.net/bubuxindong/article/details/53787392 cordova原名phonegap,虽然adobe收购了phonegap ...

  9. FTP 150 Opening BINARY mode data connection for MLSD 读取目录列表失败

    这完全是因为防火墙的问题,把服务器的防火墙关闭之后,在连接,一切ok

  10. 图片上传预览js

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...