JS中常用的数组迭代方法(filter,forEach,map,every,some,find,findIndex)

简介: 这段代码和说明介绍了JavaScript中数组的一些常用方法。函数接收三个参数:`item`(数组项的值)、`index`(项的位置,可选)和`array`(数组本身,可选)。示例展示了如何使用`filter()`过滤非空项、`forEach()`遍历数组、`map()`处理并返回新数组、`every()`检查所有元素是否满足条件、`some()`检查是否存在满足条件的元素、`find()`获取首个符合条件的元素值以及`findIndex()`获取其索引位置。这些方法都不会修改原数组。

传入这些方法中的函数均会接收3个参数:

Ⅰ.item(必须):数组项的值

Ⅱ.index(可选):该项在数组中的位置

Ⅲ.array(可选):数组对象本身

var typeKey = [0, 1, 2, 3, '']

①**filter()**:返回该函数会返回true的项组成的数组(常用于过滤空数组项

typeKey= typeKey.filter(item => {

return item !== ''

})

console.log('typeKey:', typeKey) // [0, 1, 2, 3]

②**forEach()**:对数组每一项执行一遍回调函数,没有返回值

typeKey**.**forEach(item => {

if (item) {

    console.log(item)

}

})

③**map()**:返回每次函数调用的结果组成的数组(常用于处理数组项

map() 方法:

1.返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

2.按照原始数组元素顺序依次处理元素。

注意: map() 不会对空数组进行检测。

注意: map() 不会改变原始数组。

var result = typeKey**.**map(item => {

if (item) {

    return 1

} else {

    return 0

}

})

console.log('result:', result) // [0, 1, 1, 1, 0]

按条件删除数组某些的对象中的某些字段

this.types.map(item => {

**if (item.value === '2') {**

     **return delete item.value**

**} else {**

    **return item**

**}**

})

console.log('types:', this.types)

④**every()**:用于检测数组所有元素是否都符合指定条件(通过函数提供)。

every() 方法使用指定函数检测数组中的所有元素:

  • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
  • 如果所有元素都满足条件,则返回 true。

注意: every() 不会对空数组进行检测。

注意: every() 不会改变原始数组。

语法:array.every(function(currentValue,index,arr), thisValue)

var result = typeKey.every((item, index, array) => {

return item>2

}) // 数组所有项均大于2,即都返回true,则最后返回true

var result = typeKey.every(item => item > 2)

console.log('result:', result) // false

⑤**some()**:用于检测数组中的元素是否满足指定条件(函数提供)

some() 方法会依次执行数组的每个元素:

  • 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
  • 如果没有满足条件的元素,则返回false。

注意: some() 不会对空数组进行检测。

注意: some() 不会改变原始数组。

语法:array.some(function(currentValue,index,arr),thisValue)

var result = typeKey.some((item, index, array) => {

return item>2

}) // 数组存在大于2的项,则最后返回true

var result = typeKey.some(item => item > 2)

console.log('result:', result) // true

⑥find():返回通过测试(函数内判断)的数组的第一个元素的值

find() 方法为数组中的每个元素都调用一次函数执行:

  • 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
  • 如果没有符合条件的元素返回 undefined

注意: find() 对于空数组,函数是不会执行的。

注意: find() 并没有改变数组的原始值。

语法:array.find(function(currentValue, index, arr),thisValue)

var types = [

{

    name: '单选题',

    value: 1

},

{

    name: '多选题',

     value: 2

},

{

    name: '判断题',

    value: 3

}

]

var result = types.find(item => item.value === 3)

console.log('result:', result)

⑦**findIndex()**:返回传入一个测试条件(函数)符合条件的数组第一个元素位置。

findIndex() 方法为数组中的每个元素都调用一次函数执行:

  • 当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
  • 如果没有符合条件的元素返回 -1

注意: findIndex() 对于空数组,函数是不会执行的。

注意: findIndex() 并没有改变数组的原始值。

语法:array.findIndex(function(currentValue, index, arr), thisValue)

var types = [

{

    name: '单选题',

    value: 1

},

{

    name: '多选题',

    value: 2

},

{

    name: '判断题',

    value: 3

}

]

var result = types.find**Index**(item => item.value === 3)

console.log('result:', result) // 索引:2

相关文章
|
10月前
|
JavaScript Linux 内存技术
Debian 11系统下Node.js版本更新方法详解
本指南详细介绍在Linux系统中安装和管理Node.js的步骤。首先检查现有环境,包括查看当前版本和清除旧版本;接着通过NodeSource仓库安装最新版Node.js并验证安装结果。推荐使用nvm(Node Version Manager)进行多版本管理,便于切换和设置默认版本。同时,提供常见问题解决方法,如权限错误处理和全局模块迁移方案,以及版本回滚操作,确保用户能够灵活应对不同需求。
1086 0
|
10月前
|
JavaScript Linux 内存技术
Debian 11系统下Node.js版本更新方法
Debian 11更新Node.js主要就是这三种方式,无论你是初涉其中的新手还是找寻挑战的专家,总有一种方式能满足你的需求。现在,你已经是这个
1190 80
|
12月前
|
JavaScript 前端开发 Java
js 垃圾回收机制的方法
JS回收机制方法讲解
|
11月前
|
安全 Java API
【Java性能优化】Map.merge()方法:告别繁琐判空,3行代码搞定统计累加!
在日常开发中,我们经常需要对Map中的值进行累加统计。}else{代码冗长,重复调用get()方法需要显式处理null值非原子操作,多线程下不安全今天要介绍的方法,可以让你用一行代码优雅解决所有这些问题!方法的基本用法和优势与传统写法的对比分析多线程安全版本的实现Stream API的终极优化方案底层实现原理和性能优化建议一句话总结是Java 8为我们提供的Map操作利器,能让你的统计代码更简洁、更安全、更高效!// 合并两个列表});简单累加。
1026 0
|
10月前
|
安全 Java 数据库连接
让我们讲解一下 Map 集合遍历的方式
我是小假 期待与你的下一次相遇 ~
352 43
|
存储 前端开发 API
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
该文章详细介绍了ES6中Set和Map数据结构的特性和使用方法,并探讨了它们在前端开发中的具体应用,包括如何利用这些数据结构来解决常见的编程问题。
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
|
存储 安全 Java
java集合框架复习----(4)Map、List、set
这篇文章是Java集合框架的复习总结,重点介绍了Map集合的特点和HashMap的使用,以及Collections工具类的使用示例,同时回顾了List、Set和Map集合的概念和特点,以及Collection工具类的作用。
java集合框架复习----(4)Map、List、set
|
Go 定位技术 索引
Go 语言Map(集合) | 19
Go 语言Map(集合) | 19

热门文章

最新文章