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. 从零开始学 Web 之 ES6(二)ES5的一些扩展

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  2. Enumerable转换为DataTable

    今天在项目组公共类库中发现一个 Enumerable类型转换为DataTable,写的挺精简的,拿出来跟大家共享一下. using System; using System.Collections.G ...

  3. Redis 内存模型

    了解 Redis 的 5 种对象类型(字符串.哈希.列表.集合.有序集合)的用法和特点的基础,了解 Redis 的内存模型,对 Redis 的使用有很大帮助,例如: 估算 Redis 内存使用量.内存 ...

  4. 使用BizTalk实现RosettaNet B2B So Easy

    使用BizTalk实现RosettaNet B2B So Easy 最近完成了一个vmi-hub的B2B项目,使用Rosettanet 2.0的标准与一家品牌商,OEM,供应商实现B2B.一共交换4个 ...

  5. JavaWeb学习 (二十四)————Filter(过滤器)常见应用

    一.统一全站字符编码 通过配置参数charset指明使用何种字符编码,以处理Html Form请求参数的中文问题 1 package me.gacl.web.filter; 2 3 import ja ...

  6. 记一次安装Nginx+php-fpm安装后无法解析.php文件,状态码200,但显示空白页

    安装环境: Nginx:Nginx1.12.2 PHP:PHP 7.2 系统:CentOS 7.4 安装方式: Nginx与PHP都是yum安装的,具体步骤: 1.安装epel源再安装Nginx: r ...

  7. 一张 JVM 相关的思维脑图(4.4M)

    楼主学习 JVM 总结的知识点,用思维脑图串起来,温故而知新,其中含有类加载器,内存布局,GC(右侧). 最多的就是 GC 的内容了. 内容有错误之处,还请指正. 大图地址

  8. EXISTS 执行顺序

    select * from a where a.s_status=1 and exists (select orderid from b where a.orderid=b.orderid) exis ...

  9. 随机漂浮图片、右侧上下浮动快捷栏JS

    随机漂浮图片JS: //公共脚本文件 main.js function addEvent(obj,evtType,func,cap){ cap=cap||false; if(obj.addEventL ...

  10. 解析<button>和<input type="button"> 的区别

    一.定义和用法 <button> 标签定义的是一个按钮. 在 button 元素内部,可以放置文本或图像.这是<button>与使用 input 元素创建的按钮的不同之处. 二 ...