就让我们在逆战中成长吧,加油武汉,加油自己

1.for循环

使用零时变量将长度存起来,当数组较大时优化效果才会比较明显。

var ar1=[2,4,6,8]
for(var i=0;i<ar1.length;i++){
console.log(i)
  console.log(ar1[i])
}

2.foreach循环

遍历数组中每个数,没有返回值

使用break不能中断循环,使用return也不能返回到外层函数

var ar1=[2,4,6,8]
ar1.foreach((item,index,arr){
//第一个参数代表当前元素
//第二个参数代表当前元素下标
//第三个参数代表原数组
})
//数组中长度多少就循环多少次

3.for-of循环

运行循环获得键值

var ar1=[2,4,6,8]
for(var i of ar1){
console.log(i)
//2,4,6,8
}

for-of可用使用break,continue 和 return 配合使用,跳出循环

for(var i of ar1){
if(i==4){
break
}
console.log(i)//
}

对于普通对象直接遍历的话是会报错的 obj is not iterable

for-of循环不支持普通对象,但如果你想迭代一个对象的属性,你可以用for-in循环(这也是它的本职工作)或内建的Object.keys()方法:

可以使用 Object.keys(obj) 方法将对象的键名生成一个数组,然后遍历这个数组

var obj={
"naem":"张三",
"age":18
}
for(var i of Object.keys(obj)){
console.log(i+":"+obj[i])
//name:张三 age:18
}

4.for-in

只能获得对象的键名,不能获得键值

var obj={
"naem":"张三",
"age":18
}
for(var i in obj){
console.log(i)
//name
//age
}

for...in 循环不仅遍历数字键名,还会遍历手动添加的其它键,甚至包括原型链上的键。for...of 则不会这样

let arr = [1, 2, 3]
arr.set = 'hello' // 手动添加的键
Array.prototype.name = 'word' // 原型链上的键 for(var i in arr) {
console.log(i)
//
//
//
//set
//name
}

for-in是为遍历对象而设计的,不适用于遍历数组。(遍历数组的缺点:数组的下标index值是数字,for-in遍历的index值"0","1","2"等是字符串)

5.map

不会改变原数组,有返回值可用return,成为一个新数组(只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了)

var ar1=[2,4,6,8,12]
var map1=ar1.map((item)=>{
if(item==6){
return item*2
}
})
console.log(map1)
//[undefined, undefined, 12, undefined, undefined]

之所以会出现undefined,是因为map()方法创建了一个新数组,但新数组并不是在遍历完array1后才被赋值的

下面这样写才是正确的

var map1=ar1.map((item)=>{
if(item == 6){
return item * 2
}
return item
})
console.log(map1)
//[2,4,12,8,12]

5.filter

不会对原数组进行修改 返回新数组

 var filt=ar1.filter((item,index)=>{
//返回索引大于2的元素组成新的数组
if(index>2){
return item
}
})
console.log(filt)
//[8,12]

6.reduce

reduce()作为一个循环使用。接收四个参数:初始值(上一次返回值),当前元素值,当前元素下标,原数组。

var a=[4,5,6,7,8]
//item代表一次回调的值 初始值为0
//cart代表当前元素的值
//index当前下标
//arr原数组
var num=a.reduce((item,cart,index,arr)=>{
return item+=cart
},0)
//初始值为0 console.log(num) //输出为30

7.some

every()与some()方法都是JS中数组的迭代方法。

some()是对数组中每一项运行给定函数,如果该函数满足任一返回true,则返回flase

var a=[1,2,4,69,56,89]
var some1=a.some((item)=>{
return item > 50
})
console.log(some1)//true

8.every()

every()与some()方法都是JS中数组的迭代方法。

every()是对数组中每一项运行给定函数,如果该函数所有项返回true,则返回true。一旦有一项不满足则返回flase

var a=[1,2,4,69,56,89]
var some1=a.every((item)=>{
return item > 50
})
console.log(some1)//flase

JS数组遍历方法集合的更多相关文章

  1. 浅谈6种JS数组遍历方法的区别

    本篇文章给大家介绍一下6种JS数组遍历方法:for.foreach.for in.for of.. each. ().each的区别.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. ...

  2. JS数组遍历方法

    常用数组遍历方法: 1.原始for循环 var a = [1,2,3]; for(var i=0;i<a.length;i++){ console.log(a[i]); //结果依次为1,2,3 ...

  3. js数组遍历方法总结

    数组遍历方法 1.for循环 使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显. 1 2 3 for(j = 0,len=arr.length; j < le ...

  4. js数组去重方法集合

    //第一种方法,新建一个空数组,将原来的数组循环逐个与新数组的成员做比较,如果新数组没有该元素就push进来 var arr = ['a', 1, 1, 1, 2, 4, 4, 'b', 'c', ' ...

  5. 转→js数组遍历 千万不要使用for...in...

    看到一篇内容还不错,但是排版实在糟糕, 逼死强迫症患者啊,直接拉下去找原文连接,找到了,但是已经消失了···500错误... 第一次因为实在看不下去一篇博客的排版, 为了排版而转载... 转载地址:h ...

  6. js数组遍历和对象遍历

    针对js各种遍历作一个总结分析,从类型用处:分数组遍历和对象遍历:还有性能,优缺点等. JS数组遍历: 1,普通for循环,经常用的数组遍历 var arr = [1,2,0,3,9]; for ( ...

  7. js操作textarea方法集合

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  8. ES6 数组遍历方法的实战用法总结(forEach,every,some,map,filter,reduce,reduceRight,indexOf,lastIndexOf)

    目录 forEach every some map filter reduce && reduceRight indexOf lastIndexOf 前言 ES6原生语法中提供了非常多 ...

  9. 数组遍历方法forEach 和 map 的区别

    数组遍历方法forEach 和 map 的区别:https://www.cnblogs.com/sticktong/p/7602783.html

随机推荐

  1. smarty模板配置代码详细说明及如何注册自己的smarty函数

    下面为smarty模板的配置文件,smarty配置的详细说明以及如何注册自己所需要的smarty函数 config.inc.php <?php /** * Smarty 调用 * www.daf ...

  2. tarjan通俗易懂题

    洛谷2661 https://www.luogu.org/problemnew/show/P2661 分析:求缩点后成环中,环大小最小的size #include<bits/stdc++.h&g ...

  3. Linux考试试题

    mkdir -p /data/oldboy touch lodboy.txt echo "inet addr:10.0.0.8  Bcast:10.0.0.255 Mask:255.255. ...

  4. flink分层 api

    最底层的processFunction 功能强大,使用复杂 中间层的DataSet api map reduce ...一些基本运算api 中上层的tableAPI 最上层 SQL 两个相似,只是写法 ...

  5. valgrind 的使用简介

    zz自 http://blog.csdn.net/destina/article/details/6198443  感谢作者的分享! 一  valgrind是什么? Valgrind是一套Linux下 ...

  6. JavaScript的数据类型有哪些?

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

  7. Nginx的四层和七层代理

    理论部分: 所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器,它一般走的是tcp,udp协议    所谓七层负载均衡,也称为“内 ...

  8. Mybatis-Generator相关配置demo

    generatorConfig.xml配置信息 首先在resource中配置好datasource.propertise文件,包括数据库信息和mysql-connector的jar包位置. <? ...

  9. Css兼容性大全

    知识有所欠缺  疯狂脑补抄袭经验中... 兼容性处理要点1.DOCTYPE 影响 CSS 处理 2.FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, ...

  10. shell的循环嵌套语法

    测试shell的循环嵌套语法 [root@localhost test]# vi Xunhuanqiantao.sh #!/bin/bash #程序功能描述: # 测试循环嵌套 #作者:孤舟点点 #版 ...