for循环,for...in for...of foreach find findIndex filter map indexOf some every区别

2023-11-20 20:50

本文主要是介绍for循环,for...in for...of foreach find findIndex filter map indexOf some every区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

包含10个循环遍历详细使用,以及总结,区分

1、fro...in

这里的循环体 i 循环的是对象的,而想要获得值那就arr[键]

:值

name:‘张三’

age:24

----------

所以我们在对象的时候选用for...in合适

const arr1 = { name: '张三', age: 24 }for (let i in arr1) {console.log(arr1[i]);
}console.log('打印结果如下-----------');张三
24

2、for...of

const arr1 = [1, 2, 3, 4]for (let i of arr1) {console.log(i);
}
console.log('打印结果如下------------');
1
2
3
4

 3、forEach

 

const arr1 = ['牛二', '张三', '李四', '王五']
// 只针对数组// 简写
arr1.forEach(e => {console.log(e);
});// forEach方法中的function回调有三个参数:
// 第一个参数是遍历的数组内容,
// 第二个参数是对应的数组索引,
// 第三个参数是数组本身
arr1.forEach((value, index, arr) => {console.log('value是: ' + value + ' ---- ' + 'index是: ' + index + ' ---- ' + 'arr是: ' + arr);
})

4、find

const arr1 = ['牛二', '张三', '李四', '王五']
const s = '李四'let res = arr1.find((e) => {return s === e
})
console.log(res);// 满足条件的第一个数组元素,返回元素本身,
// 代码运行到  李四  触发立刻中止遍历

5、findIndex

 

const arr1 = ['牛二', '张三', '李四', '王五']
const s = '李四'let res = arr1.findIndex((e) => {return s === e
})
console.log(res);
// 该方法和find方法类似,凡是区别是返回的是满足条件的第一个元素的下标
// 李四 在数组中的下标是2,所以返回2

 6、filter

 

const arr1 = [1, 2, 3, 4, 5, 6, 7]
const s = 5let res = arr1.filter((e) => {return s <= e
})
console.log(res);// 返回一个全新的数组,数组是包含满足条件的所有元素

 7、map

const arr1 = [1, 2, 3, 4, 5, 6, 7]let res = arr1.map((e) => {return e * 2
})
console.log(res);

 8、补充indexOf

 

const arr1 = 'AasfdsgsDtsdgw'console.log(arr1.indexOf('A'));
console.log(arr1.indexOf('a'));
console.log(arr1.indexOf('t'));// 严格区分大小写

9.补充some

 

const arr1 = [1, 2, 43, 5, 67]const res = arr1.some(i => i < 10)console.log(res);// 这里需要注意回调函数必须为简写,亲测不用简写不生效,原因作者也不知道,

10、补充every

11、补充reduce

 

总结:

for...in

        可以改变原数组

        多用于对象,

for...of

        可以改变原数组

        只能用于数组

总结for...in和for...of就是对象用in数组用of

forEach(有名增强for循环)

        可以改变原数组

        多用于需要操作数组多个属性的时候

find

        不改变原数组,

        带有返回值(返回满足条件的第一个元素本身);触发条件后立刻终止

        搭配forEach方法可以做数组去重操作

findIndex

        不改变原数组

        带有返回值(返回满足条件的第一个元素下标);触发条件后立刻终止

filter

        不改变原数组

        返回新数组,不会改变原数组(返回满足条件的所有元素);

map

        不会改变原数组

        返回一个新数组,(获取对数组所有元素进行操作后的新数组)

        但是会浪费内存空间

// 补充特殊的带有循环的方法

indexOf

        针对字符串,没有返回值返回-1,严格区分大小写

        返回指定的字符串值在字符串中首次出现的位置

some

        不改变原数组

        返回数组是否包含某个元素

        返回一个布尔值:如果为true立刻终止循环

        强烈不推荐使用

        回调函数必须为简写,原因暂时不知道

every

        不改变原数组

        返回数组所有元素是否都满足条件

        返回一个布尔值:

        强烈不推荐使用

        回调函数必须为简写,原因暂时不知道

​​​​​​reduce

        常用来数组求和

        有返回值,又初始值,可以传递4个参数

some&ecery的两个问题有人知道的话可以留言给作者

这篇关于for循环,for...in for...of foreach find findIndex filter map indexOf some every区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/397352

相关文章

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

native和static native区别

本文基于Hello JNI  如有疑惑,请看之前几篇文章。 native 与 static native java中 public native String helloJni();public native static String helloJniStatic();1212 JNI中 JNIEXPORT jstring JNICALL Java_com_test_g

poj3750约瑟夫环,循环队列

Description 有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。 Input 第一行输入小孩的人数N(N<=64) 接下来每行输入一个小孩的名字(人名不超过15个字符) 最后一行输入W,S (W < N),用

Android fill_parent、match_parent、wrap_content三者的作用及区别

这三个属性都是用来适应视图的水平或者垂直大小,以视图的内容或尺寸为基础的布局,比精确的指定视图的范围更加方便。 1、fill_parent 设置一个视图的布局为fill_parent将强制性的使视图扩展至它父元素的大小 2、match_parent 和fill_parent一样,从字面上的意思match_parent更贴切一些,于是从2.2开始,两个属性都可以使用,但2.3版本以后的建议使

Collection List Set Map的区别和联系

Collection List Set Map的区别和联系 这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。 有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否

javascript中break与continue的区别

在javascript中,break是结束整个循环,break下面的语句不再执行了 for(let i=1;i<=5;i++){if(i===3){break}document.write(i) } 上面的代码中,当i=1时,执行打印输出语句,当i=2时,执行打印输出语句,当i=3时,遇到break了,整个循环就结束了。 执行结果是12 continue语句是停止当前循环,返回从头开始。

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们

ActiveMQ—Queue与Topic区别

Queue与Topic区别 转自:http://blog.csdn.net/qq_21033663/article/details/52458305 队列(Queue)和主题(Topic)是JMS支持的两种消息传递模型:         1、点对点(point-to-point,简称PTP)Queue消息传递模型:         通过该消息传递模型,一个应用程序(即消息生产者)可以

深入探讨:ECMAScript与JavaScript的区别

在前端开发的世界中,JavaScript无疑是最受欢迎的编程语言之一。然而,很多开发者在使用JavaScript时,可能并不清楚ECMAScript与JavaScript之间的关系和区别。本文将深入探讨这两者的不同之处,并通过案例帮助大家更好地理解。 一、什么是ECMAScript? ECMAScript(简称ES)是一种脚本语言的标准,由ECMA国际组织制定。它定义了语言的语法、类型、语句、

Lua 脚本在 Redis 中执行时的原子性以及与redis的事务的区别

在 Redis 中,Lua 脚本具有原子性是因为 Redis 保证在执行脚本时,脚本中的所有操作都会被当作一个不可分割的整体。具体来说,Redis 使用单线程的执行模型来处理命令,因此当 Lua 脚本在 Redis 中执行时,不会有其他命令打断脚本的执行过程。脚本中的所有操作都将连续执行,直到脚本执行完成后,Redis 才会继续处理其他客户端的请求。 Lua 脚本在 Redis 中原子性的原因