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

相关文章

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

分辨率三兄弟LPI、DPI 和 PPI有什么区别? 搞清分辨率的那些事儿

《分辨率三兄弟LPI、DPI和PPI有什么区别?搞清分辨率的那些事儿》分辨率这个东西,真的是让人又爱又恨,为了搞清楚它,我可是翻阅了不少资料,最后发现“小7的背包”的解释最让我茅塞顿开,于是,我... 在谈到分辨率时,我们经常会遇到三个相似的缩写:PPI、DPI 和 LPI。虽然它们看起来差不多,但实际应用

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

SpringBoot如何通过Map实现策略模式

《SpringBoot如何通过Map实现策略模式》策略模式是一种行为设计模式,它允许在运行时选择算法的行为,在Spring框架中,我们可以利用@Resource注解和Map集合来优雅地实现策略模式,这... 目录前言底层机制解析Spring的集合类型自动装配@Resource注解的行为实现原理使用直接使用M

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

Python循环缓冲区的应用详解

《Python循环缓冲区的应用详解》循环缓冲区是一个线性缓冲区,逻辑上被视为一个循环的结构,本文主要为大家介绍了Python中循环缓冲区的相关应用,有兴趣的小伙伴可以了解一下... 目录什么是循环缓冲区循环缓冲区的结构python中的循环缓冲区实现运行循环缓冲区循环缓冲区的优势应用案例Python中的实现库

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑