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. Unity3d中PureMVC框架的搭建及使用资料

    1.下载PureMVC框架 https://github.com/PureMVC/puremvc-csharp-multicore-framework https://github.com/PureM ...

  2. ubuntu server 14.04 LTS下搭建LAMP环境之最详细笔记之一U盘安装双系统

    前言: 一直在WIN上使用PHP,不喜欢用WAMP,每次都是手动在windows配置环境,偶尔有一次装了小红帽玩了两天,感觉不是很习惯就换了回来,过了没几天见讨论LAMP环境,于是安装了ubuntu的 ...

  3. python——字符串格式化

    字符串的基础位置预留(网上到处都是) Python用一个tuple将多个值传递给模板,每个值对应一个格式符 在模板和tuple之间,有一个%号分隔,它代表了格式化操作. 使用字典 当只有很少量的占位符 ...

  4. NLog基础配置

    <?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nl ...

  5. IIS服务器SSL证书安装

    在证书控制台下载IIS版本证书,下载到本地的是一个压缩文件,解压后里面包含.pfx文件是证书文件,pfx_password.txt是证书文件的密码. 友情提示: 每次下载都会产生新密码,该密码仅匹配本 ...

  6. 【Java】XML文件的解析

    import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

  7. Tomcat报failed to parse the expression [${xxx}]异常(javax.el.ELException)的解决方法

    Tomcat 7 'javax.el.ELException' 的解决方式tomcat 7对EL表达式的语法要求比较严格,例如"${owner.new}"因包含关键字new就会导致 ...

  8. Django Rest Framework之解析器

    基本代码结构 urls.py: from django.conf.urls import url, include from web.views.s5_parser import TestView u ...

  9. css 单位px、em、rem、vh、vw、vmin、vmax区别

    1.px:相对长度单位.像素px是相对于显示器屏幕分辨率而言的. 2.em:相对长度单位.相对于当前对象内文本的字体尺寸.如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸. 看下面 ...

  10. 2017 SCNUCPC 解题报告

    校内赛题目.解题思路.参考代码一览 A. Blackstorm's Blackstore Problem Description Blackstorm is going to open a black ...