[Vue]常见的循环处理数组方法:forEach some map filter every find等方法

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

[Vue]常见的循环处理数组方法:forEach some map filter every find等方法

Array.forEach(callback)

千万注意:forEach() 方法对于空数组是不会执行回调函数的

forEach()方法用于遍历数组中的每一个元素,并将元素传给回调函数,注意:forEach()中是不支持使用break来中途跳出循环和不支持return操作输出,return只能用于控制循环是否跳出当前循环

语法:

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

输出:
1 0  [1, 2, 3, 4, 5, 6, 7]
2 1  [1, 2, 3, 4, 5, 6, 7]
3 2  [1, 2, 3, 4, 5, 6, 7]
4 3  [1, 2, 3, 4, 5, 6, 7]
5 4  [1, 2, 3, 4, 5, 6, 7]
6 5  [1, 2, 3, 4, 5, 6, 7]
7 6  [1, 2, 3, 4, 5, 6, 7]

回调有三个参数: item:遍历的数组内容 index:对应的数组索引 arr:数组本身

forEach方法是没有返回值的,仅仅是遍历数组中的每一项,不对原来数组进行修改

let arr=[1,2,3,4,5,6,7]
let result = arr.forEach((item,index,arr)=>{
   // 通过item不能改变原数组
   if(item==2){
         item=1
   }
})
console.log('arr:'+arr)
console.log('result:'+result)

输出:
arr:1,2,3,4,5,6,7
result:undefined

但是可以通过数组的索引值来修改原数组的值

let arr=[1,2,3,4,5,6,7]
let result = arr.forEach((item,index,arr)=>{
    // 通过数组索引值来修改原数组的值
    if(item==2){
        arr[index]=20
    }
})
console.log('修改后的arr:'+arr)

输出:
修改后的arr:1,20,3,4,5,6,7

总结:

  1. forEach() 方法对于空数组是不会执行回调函数的

  2. forEach()方法是没有返回值的

  3. 不支持使用break来中途跳出循环和不支持return操作输出,return只能用于控制循环是否跳出当前循环

  4. 可以通过数组的索引值来修改原数组的值

  5. 回调有三个参数:item:遍历的数组元素 index:当前遍历的数组元素的索引值 arr:遍历的数组本身

Array.some(callback)

**some()**是Vue 中的一个常用方法,它接收一个回调函数,回调函数接收三个参数:item当前元素、index当前索引、arr数组本身,注意:当有一个元素满足回调函数的条件时,some方法返回true,否则返回false

some方法找到符合条件的便会终止,否则将会遍历整个数组

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

语法:

let arr=[1,2,3,4,5,6,7]
arr.some((item,index,arr)=>{
    
})

若数组中的对象只要有一个对象复合条件就返回true , 剩余的元素不会再执行检测,全部对象都不符合条件才返回false

let arr=[
            {
                name:'小红',
                age:28,
            },
            {
                name:'小蓝',
                age:25,
            },
            {
                name:'小绿',
                age:29,
            },
            {
                name:'小白',
                age:27,
            },
        ]
let result = arr.some((item,index,arr)=>{
    return item.age>30
})
console.log(result)


输出:
false
//所有对象都不符合就返回false
let arr=[
            {
                name:'小红',
                age:28,
            },
            {
                name:'小蓝',
                age:25,
            },
            {
                name:'小绿',
                age:29,
            },
            {
                name:'小白',
                age:27,
            },
        ]
let result = arr.some((item,index,arr)=>{
    console.log(item)
    return item.age>28
})
console.log(result)

输出:
{name: '小红', age: 28}
{name: '小蓝', age: 25}
{name: '小绿', age: 29}
true

//当有一个元素满足回调函数条件时,数组就返回true,然后终止遍历,后续元素将不继续遍历,如程序中的小白就没有遍历

总结:

  1. some方法找到符合条件的便会终止,否则将会遍历整个数组

  2. 当数组中有一个元素满足条件即返回true,所有对象都不符合就返回false

Array.every(callback)

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

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

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

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

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

语法:

let arr=[1,2,3,4,5,6,7]
arr.every((item,index,arr)=>{
    
})

当所有元素都满足条件返回true

let arr=[
            {
                name:'小红',
                age:28,
            },
            {
                name:'小蓝',
                age:25,
            },
            {
                name:'小绿',
                age:29,
            },
            {
                name:'小白',
                age:27,
            },
        ]
let result = arr.every((item,index,arr)=>{
    console.log(item)
    return item.age>20
})
console.log(result)

输出:
true

当检测到有元素不满足时,返回false,循环终止,后续元素不再遍历

let arr=[
            {
                name:'小红',
                age:28,
            },
            {
                name:'小蓝',
                age:25,
            },
            {
                name:'小绿',
                age:29,
            },
            {
                name:'小白',
                age:27,
            },
        ]
let result = arr.every((item,index,arr)=>{
    console.log(item)
    return item.age>26
})
console.log(result)


输出:

age: 28 name: "小红"
age: 25 name: "小蓝"
false

//检测到小蓝不满足条件,所以后续的小白和小绿就没有遍历

总结:

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

Array.map(callback)

.map()方法的返回值为新的数组,组中的元素为原始数组元素调用函数处理后的值

map() 按照原始数组元素顺序依次处理元素

注意:

  1. map() 不会对空数组进行检测。
  2. map() 不会改变原始数组。

语法:

let arr=[1,2,3,4,5,6,7]
let newArr = arr.map((item,index,arr)=>{
    
})

.map()方法的返回值为一个新的数组

假设你的数据为:

{
    name: '小红',
    age: 28,
},
{
    name: '小蓝',
    age: 25,
},
{
    name: '小绿',
    age: 29,
},
{
    name: '小白',
    age: 27,
},

但是前端想要使用的数据类型为

{name: '小红'},
{name: '小蓝'},
{name: '小绿'},
{name: '小白'},

这时候就可以用map()方法遍历原数组,返回一个新数组,组中的元素为原始元素调用函数后得到的结果

let arr = [
            {
                name: '小红',
                age: 28,
            },
            {
                name: '小蓝',
                age: 25,
            },
            {
                name: '小绿',
                age: 29,
            },
            {
                name: '小白',
                age: 27,
            },
        ]
let newArr = arr.map((item, index, arr) => {
    return {name:item.name}
})
console.log(newArr)

得到的结果:
[Vue]常见的循环处理数组方法:forEach some map filter every find等方法

总结:

  1. .map()方法有返回值,返回的是一个新的数组
  2. 遍历原数组的所有元素
  3. 新数组的元素为原始元素调用函数后得到的结果

Array.find(callback)

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

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

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

注意:

  1. find() 对于空数组,函数是不会执行的。

  2. find() 并没有改变数组的原始值。

语法:

let arr=[1,2,3,4,5,6,7]
let res = arr.map((item,index,arr)=>{
    
})

假如要选出数组中第一个大于8的数

let arr = [1,0,8,92,3,65,48,2,100]
let result = arr.find((item, index, arr) => {
    return item>8
})
console.log(result)

输出:
92

//返回数组中第一个符合条件的元素,之后的值将不继续遍历

总结:

  1. find()方法返回通过测试(函数内判断)的数组的第一个元素的值
  2. 若数组中无满足条件的元素,则返回undefined
  3. 获取到满足条件的元素后,后续的元素将不继续遍历

Array.filter(callback)

.filter()用于把数组的某些元素的筛选,然后返回剩下的元素

不会改变原数组,返回值是一个新的数组

新数组的数据是满足return条件的原数组数据

语法:

let arr=[1,2,3,4,5,6,7]
let res = arr.filter((item,index,arr)=>{
    
})

假设原数据为

let arr = [1,0,8,92,3,65,48,2,100]

需要提取数组中大于10的数据

let arr = [1,0,8,92,3,65,48,2,100]

let result = arr.filter((item, index, arr) => {
    return item>10
})
console.log(result)


输出:
[92, 65, 48, 100]

总结:文章来源地址https://www.toymoban.com/news/detail-497580.html

  1. filter()返回值是一个新的数组
  2. 新的数组的元素是满足回调函数条件而筛选出来的原数组元素
  3. 不会改变原数组的数据
.forEach() .some() .every() .map() .find() .filter()
使用场景 没有返回值,可以通过索引修改原函数的数据,遍历所有数据 返回值是一个布尔值,找到符合条件的就会终止遍历,否则就遍历整个数组 返回值是一个布尔值,找到不符合条件的就停止遍历,否则就遍历整个数组(与some()相反) 返回值是一个新的数组,新数组的元素取决于.map()方法的回调函数返回 返回通过测试(函数内判断)的数组的第一个元素的值 返回值是一个新的数组,新的数组的元素是满足回调函数条件而筛选出来的原数组元素
循环次数 数组的长度 小于等于数组的长度 小于等于数组的长度 数组的长度 小于等于数组的长度 数组的长度
执行结果 没有返回值,return只是用来跳过当前循环 找到满足条件的就返回true,否则就遍历整个数组返回false 找到不满足条件的就返回true,否则就遍历整个数组返回false 新数组的数据是.map()callback函数的return返回结果 返回的数据是原数组中第一个满足条件的元素,若原数组中的所有元素都不满足,则返回undefined 返回一个新数组,数组的元素是满足回调条件的所有原数组数据

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

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

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

相关文章

  • 数组的5种遍历(for循环、for...in、for...of、forEach()、map()

    数组:内存中一块连续的存储单元,这些存储单元具有共同的名称,不同的索引(下标)。 数组5种遍历: 1、for循环        任何数组都可以使用for循环进行遍历,使用频率最高                                 for (let i = 0; i arr.length; i++) {                            

    2024年02月06日
    浏览(30)
  • Vue的map()方法和filter()方法的使用

    map():方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值 案例: filter():方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素 注: foreach遍历数组,不会有返回值 map遍历数组,返回处理后的新数组 every判断数组中每一个元

    2024年02月10日
    浏览(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)
  • 大二暑期实习记录(一):处理组件绑定数据错误(数组解构,map()方法)

    好家伙,搬砖   今天在做组件迁移(从一个旧平台迁移到一个新平台)的时候,发现了一些小小的问题:   在穿梭框组件中,使用\\\" 节点配置 \\\"方法添加数据的时候,左测数据选择框直接消失了 这里我们猜测一下,大概是数据处理出了问题 此处,我们使用 \\\"数据绑定\\\" 绑定数据方法:    定

    2024年02月15日
    浏览(23)
  • JavaScript forEach 方法跳出循环

    这个问题平时工作中基本不会遇到,通常是面试时,有的面试官喜欢问这个,所以有了探讨的意义。 首先我们来看看 for 循环是怎么处理跳出的。 JavaScript中,for循环可以使用 break 和 continue 来跳出: continue:跳出本次循环 break:结束循环 了解了 for 循环跳出之后,forEach 如何

    2024年02月03日
    浏览(27)
  • foreach循环使用方法详解

    在前面的文章中, 千锋壹哥 给大家讲解了for、while、do-while三种循环结构,并讲解了如何跳出循环的几种方式,比如break、continue、return等。但是截止到目前,与循环相关的内容还没有完事,我们还有最后一哆嗦,今天 千锋壹哥 会给大家讲解另一种循环方式--增强for循环!这

    2023年04月24日
    浏览(31)
  • 【C++】STL 算法 ② ( foreach 循环中传入 函数对象 / Lambda 表达式处理元素 | foreach 循环算法 | Lambda 表达式 - 匿名 函数对象 / 仿函数 )

    在 C++ 语言中 , std::foreach 循环 虽然 不是标准库的一部分 , 但是 C ++ 编译器 提供了对 该语法 的支持作为扩展 ; 使用 该 std::foreach 循环 , 可以用于 遍历 STL 标准模板库 中提供的容器 , 如 vector 单端数组 , list 双向链表 , map 映射 , set 集合 等 容器 中的元素 ; std::for_each 是一个算

    2024年02月02日
    浏览(49)
  • JavaScript中的map()和forEach()方法有什么区别?

    聚沙成塔·每天进步一点点 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而

    2024年02月06日
    浏览(35)
  • js中断 forEach 循环的几种方法

    1、使用 Array.prototype.some() 方法代替 some() 方法会在找到第一个符合条件的元素时停止循环。 例如: 上述代码会在找到第一个符合条件的元素(即 3)时停止循环。 2、使用 Array.prototype.every() 方法代替 上述代码会在找到第一个符合条件的元素(即 3)时停止循环。 请注意,该

    2024年02月14日
    浏览(32)
  • Vue 循环map对象拿到key值和value值,VUE 获取对象{}的key值,vue根据对象id删除数组中的对象,实现局部刷新的功能,vue中JS 对象动态添加键值对

    适用场景: vue中定义的map对象 map : { name : \\\'xxx\\\' } 接口回显map格式的数据 data :{ key : value} 都可以通过以下方式拿到key和value的值 VUE 获取对象{}的key值  vue根据对象id删除数组中的对象,实现局部刷新的功能 方法一:使用过滤器 注:这个一般是根据对象id 方法二:使用splice() 注

    2024年02月08日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包