常见遍历方法 for循环、forEach、map、filter、find、findIndex、some、every

这篇具有很好参考价值的文章主要介绍了常见遍历方法 for循环、forEach、map、filter、find、findIndex、some、every。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

常见遍历方法 for循环、forEach、map、filter、find、findIndex、some、every

for循环

来自于远古的遍历方式,并且涵盖多种手段,例如for in 和for of。

for(let i = 1; i<=5; i++){
	console.log("这是第"+i+"次"+"循环")
}

for循环 中使用break和continue语句(终止和跳过本次循环):

for(let i=1;i<=10;i++){
	if(i==3){
		break;//跳出循环,执行循环后面的语句(整个循环便终止了)
	}
	console.log(i)
}

for(let i=1;i<=10;i++){
	if(i==3 || i==7 || i==9){
		continue;//中断循环中的迭代,然后继续循环中的下一个迭代
	}
	console.log(i)
}
  • for of 用来遍历数组也是可以的
  • for of 中也可以用break和continue

遍历对象: for in

let student = {name:"张三",sex:"男",age:18,hometown:"河南许昌"}
for(let x in student){
	console.log(x+":"+student[x]+)
}//x为key键  属性     student[x]为值 value
  • for in 也可以遍历数组,但不推荐
  • for in 中也可以用break和continue

forEach遍历

forEach是ES5中操作数组的一种方法,主要功能是遍历数组。

let arr = [1,2,3,4];
let sum = 0;
arr.forEach(function(value,index,array){
	array[index] == value;    //结果为true
	sum+=value;  
});
console.log(sum);    //结果为 10

forEach可以修改自己吗?
答:在数组每一项为引用类型时可以

let arr = [1,2,3,4,5,6]
arr.forEach((item) => {
	item = item +1
})
console.log(arr)//[1,2,3,4,5,6]

let objArr = [{num:1},{num:2}]
objArr.forEach((item) => {
	item.num +=1
})
console.log(objArr)//[{num:2},{num:3}]
  • forEach不可以用break和continue
    那forEach怎么跳出和终止循环呢?

forEach跳出:

var arr = [1,2,3,4,5,6]
arr.forEach((item) => {
	if (item === 3) {
		return
	}
    console.log(item)
})

将输出 1 2 4 5 6,3不会输出

forEach终止:(抛出异常的方式)

var arr = [1,2,3,4,5,6]
try{
  arr.forEach((item) => {
  	  if (item === 3) {
  		  throw new Error('End Loop')
  	  }
      console.log(item)
  })
} catch (e) {
    if(e.message === 'End Loop') throw e
}

将只输出 1 2

map

map即是 “映射”的意思 用法与 forEach 相似。

[].map(function(value,index,array){
  //code
})

MDN上说:map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。具体使用如下:

let array = [1, 4, 9, 16];
const map1 = array.map(x => {
    return x + 1;
});
console.log(array)//[1,4,9,10.16]
console.log(map1)//[2,5,10,17]

可见map并不会修改原数组。

filter

filter用于对数组进行过滤,得到符合条件的新数组。
filter() 不会对空数组进行检测;不会改变原数组。

let nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
 
let res = nums.filter((num) => {
  return num > 5;
});
 
console.log(res);  // [6, 7, 8, 9, 10]

find

find()方法用于查找数组中符合条件的第一个元素,如果没有符合条件的元素,则返回undefined。

let arr = [1, 2, 3, 4, 5];
let num = arr.find(item => {
	return item > 1
});
console.log(num)  //2

findIndex

findIndex方法常用来查找数组中满足条件的第一项元素的下标。

const arr = [1, 2, 3, 4, 5, 3, 3, 2, 4, 5 ]
let index = arr.findIndex(item => {
    return item > 2
})
console.log(index) // 2

some

some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:

  • 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
  • 如果没有满足条件的元素,则返回false。
    注意: some() 不会对空数组进行检测。
    注意: some() 不会改变原始数组。
let data = ['1','2','3']
//一直在找符合条件的值,一旦找到,则不会继续迭代下去。
let re = data.some(function(item){
    // 只要判断做比较的变量是数组中有的就返回true
    return item === '1' // true
})
console.log(re)//true

与some()方法相反
every() 方法用于检测数组所有元素是否都符合指定条件(函数提供)。
every() 方法使用指定函数检测数组中的所有元素:文章来源地址https://www.toymoban.com/news/detail-481503.html

  • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
  • 如果所有元素都满足条件,则返回 true。
    注意: every() 不会对空数组进行检测。
    注意: every() 不会改变原始数组。
let data=['1','2','3']
// every(function(){})是对数组中每一项运行给定函数,如果该函数对每    一项返回true,则返回true,
// 一旦有一个不符合条件,则不会继续迭代下去
let result = data.every(function(item){
    return item === '1'
})
console.log(result) // false

到了这里,关于常见遍历方法 for循环、forEach、map、filter、find、findIndex、some、every的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaScript 之 常用迭代方法forEach、filter()、map()、reduce()

    代码如下: 如下: 代码简洁很多,如下: 简介 : filter() 方法创建给定数组一部分的浅拷贝,其包含通过所提供函数实现的测试的所有元素。 语法 : 参数、返回值 描述 参考官网: 官网——Array.prototype.filter(). 代码如下: 代码如下: 下例使用 filter() 根据搜索条件来过滤数

    2024年02月09日
    浏览(29)
  • js中findIndex()、find()、indexOf()、includes()方法

    findIndex方法常用来查找满足条件的第一项索引,找到了就返回该索引,找不到返回-1。 注意:findIndex会对数组中的每一项执行一个函数来判断是否满足表达式,如果满足条件后,剩下的元素则不再执行。 find方法用来查找满足条件的第一项,找到了就返回那一项对应的值,找不

    2024年02月08日
    浏览(28)
  • 遍历用for还是foreach?

    遍历用for还是foreach?这篇文章帮你轻松选择! 在编程的世界里,我们经常需要对数据进行循环处理,常用的两种方法就是:for循环和foreach循环。想象你站在一条装满宝贝的传送带前,你要亲手检查每一件宝贝。使用for循环就像是你亲手控制传送带的速度和方向,而使用for

    2024年02月19日
    浏览(27)
  • mybatis双重foreach实现遍历map中的两个list数组

    前端传值时可能会有多个字段传递过来,需要后台将这多个字段拼接为 name in (? , ?) and name1 in (? , ?) and name2 in (? , ?) 作为sql查询条件…如下图sql语句,即实现多个and xxx in(?,?,?) 拼接 前端传递的是json字符串,json中name和infos是一对具有对应关系的对象,且json中会有多条这种对象

    2024年02月15日
    浏览(25)
  • C#学习笔记--foreach循环是怎么遍历容器的?实战带你弄懂foreach原理

    上篇文章我们了解了 IEnumerable 和 IEnumerator C#学习笔记–由浅至深理解IEnumerable和IEnumerator 这篇文章我们来研究 foreach 循环 foreach 循环实际上是通过调用集合的 GetEnumerator 方法来获取一个枚举器,然后在每次迭代中调用枚举器的 MoveNext 方法来遍历集合的。当枚举器的 MoveNext 方

    2024年02月03日
    浏览(24)
  • Java循环对比:传统for循环、增强型for循环和forEach循环

    传统的for循环是一种经典的循环结构,在Java中广泛使用。 以下是传统for循环的特点: 灵活控制:传统for循环使用形式为for (初始化表达式; 终止条件; 步进表达式)的语法,可以手动控制循环的索引,并根据需要执行自定义操作。 索引访问:传统for循环通过索引访问集合或数

    2024年02月07日
    浏览(26)
  • Kotlin基础入门 - for、forEach 循环

    不论身处何方 for循环这种操作都随处可见,鉴于大多数Android开发都是从Java转到Kt的,所以我的思路是从Java的使用习惯来讲一些Kt 的for、forEach 循环方式 基础 for循环 for循环 一般作用于 list、map数据集合 ,这里我直接创建了一个只读List集合 提前了解 惯性 for循环 所谓的惯性

    2024年01月16日
    浏览(27)
  • 【JS】for 与 forEach 分别如何跳出循环

    for 循环 在 for 循环中,退出循环的两种方式: break; 退出整个循环 continue; 退出当次循环 break 退出整个循环 continue 退出当次循环 forEach 在JavaScript中, forEach 方法是用于遍历数组的方法,它会对数组中的每个元素执行指定的操作。 forEach 方法本身 并不提供直接的方式来跳出循

    2024年02月12日
    浏览(31)
  • matlab中的foreach、for in 循环、迭代器

    I 是个行向量,对于行向量,可以像上面的语法那样在 for 循环中使用,遍历 I 中的每一个元素。 如果 I 是列向量,就不行了。 可以看到 a 直接被赋值成整个列向量。 可见,for 循环中被用来迭代的矩阵会被看成只有一行,里面的元素是一个个列向量,for 循环一次取出里面的

    2024年02月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包