Vue 学习随笔系列十五 -- 数组遍历方法

news2024/11/16 21:04:55

数组遍历方法

文章目录

  • 数组遍历方法
      • 1. for 循环
      • 2. forEach (不会修改数组本身)
      • 3. map (不修改数组本身)
      • 4. some(不修改数组本身)
      • 5. every(不修改数组本身)
      • 6. filter(不修改数组本身)
      • 7. find(不修改数组本身)
      • 8. findIndex
        • 拓展
      • 9. reduce(累加)
        • 拓展


1. for 循环

for…if… 条件判断循环
for…in… 遍历对象的索引
for…of… 遍历对象的元素

// for...if...
const arr = [11, 12, 13, 14]
for(let i = 0; i < arr.length; i++) {
  console.log(111, arr[i])
}

// for...in...
for( let i in arr) {
  console.log(222, arr[i])
}

// for...of...
for(let i of arr) {
  console.log(333, i)
}

在这里插入图片描述

2. forEach (不会修改数组本身)

无返回值
回调函数有三个参数
callBack(item, inde, arr) ,item – 当前元素, index – 当前元素索引, arr – 原数组

const arr = [11, 12, 13, 14]
arr.forEach(( item, index, array ) => {
  console.log( item, index, array)
})

在这里插入图片描述

3. map (不修改数组本身)

返回一个新的数组
回调函数有三个参数
callBack(item, inde, arr) ,item – 当前元素, index – 当前元素索引, arr – 原数组

const arr = [11, 12, 13, 14]
let data = arr.map( (item, index, array) => {
  console.log( item, index, array)
  return item * 2
})
console.log("data==", data)

在这里插入图片描述

4. some(不修改数组本身)

遍历每一个元素,有任何一个元素满足条件,则返回true, 没有元素满足条件,则返回 false
回调函数有三个参数
callBack(item, inde, arr) ,item – 当前元素, index – 当前元素索引, arr – 原数组

const arr = [11, 12, 13, 14]
 let flag = arr.some( (item, index, array) => {
   console.log( item, index, array)
   return item == 13
 })
console.log("flag==", flag)

在这里插入图片描述

5. every(不修改数组本身)

遍历每一个元素,每一个元素都满足条件,则返回true, 有任一元素不满足条件,则返回 false
回调函数有三个参数
callBack(item, inde, arr) ,item – 当前元素, index – 当前元素索引, arr – 原数组

const arr = [11, 12, 13, 14]
let flag = arr.every( (item, index, array) => {
  console.log( item, index, array)
  return item == 13
})
console.log("flag==", flag)

在这里插入图片描述

6. filter(不修改数组本身)

返回数组中满足条件的元素,遍历整个数组,返回一个新数组
回调函数有三个参数
callBack(item, inde, arr) ,item – 当前元素, index – 当前元素索引, arr – 原数组

const arr = [
  {
    name: "xiaoming",
    age: 18
  },
  {
    name: "xiaoli",
    age: 20
  },
  {
    name: "xiaoming",
    age: 25
  }
]
let temp = arr.filter( (item, index, array) => {
  console.log( item, index, array)
  return item.name === 'xiaoming'
})
console.log("temp== ", temp, temp[0].age)

在这里插入图片描述

7. find(不修改数组本身)

返回数组中满足条件的第一个元素,不会遍历整个数组
回调函数有三个参数
callBack(item, inde, arr) ,item – 当前元素, index – 当前元素索引, arr – 原数组

const arr = [11, 12, 13, 13, 14, 13, 14]
let temp = arr.find( (item, index, array) => {
  console.log( item, index, array)
  return item == 13
})
console.log("temp== ", temp )

在这里插入图片描述

8. findIndex

返回符合条件的第一个元素的索引值,如果有满足条件的值,返回满足条件的第一个值的索引,如果没有满足条件的值,返回 -1
回调函数有三个参数
callBack(item, inde, arr) ,item – 当前元素, index – 当前元素索引, arr – 原数组

const arr = [11, 12, 13, 13, 14, 13, 14]
let temp = arr.findIndex( (item, index, array) => {
	console.log( item, index, array)
	return item == 13
})
console.log("temp== ", temp )

在这里插入图片描述

const arr = [11, 12, 13, 13, 14, 13, 14]
let temp = arr.findIndex( (item, index, array) => {
  console.log( item, index, array)
  return item == 15
})
console.log("temp== ", temp )

在这里插入图片描述

拓展

findLastIndex 从右往左遍历数组,找到第一个满足条件的值,返回其索引,如果没有满足条件的值,返回-1

const arr = [11, 12, 13, 13, 14, 13, 14]
let temp = arr.findLastIndex( (item, index, array) => {
  console.log( item, index, array)
  return item == 13
})
console.log("temp== ", temp )

在这里插入图片描述

9. reduce(累加)

array.reduce(callback, initValue)
array.reduce((prev, cur, index, arr) => {
	retutn ****
}, initValue)

回调函数有四个值:
prev:上一次累加的返回值,或给定的初始值
cur:数组中正在处理的当前元素
index:当前元素的索引值
arr :原数组
如果没有提供初始值,则从数组的第一个元素开始
注意:
空数组 未给初始值 执行reduce操作,会报错,
空数组 给定初始值 执行reduce操作,不会报错

const arr = [1, 2, 3, 4, 5, 6]
let sum = arr.reduce( (prev , cur, index, arr) => {
  console.log( prev , cur, index, arr )
  return prev + cur;
})
console.log("sum== ", sum )

在这里插入图片描述

拓展

给定累加初始值

const arr = [1, 2, 3, 4, 5, 6]
let sum = arr.reduce( (prev , cur, index, arr) => {
	console.log( prev , cur, index, arr )
	return prev + cur;
}, 10)
console.log("sum== ", sum )

在这里插入图片描述
reduce 对象属性求和

const arr = [
  {
    aub: "语文",
    score: 90
  },
  {
    sub: "数学",
    score: 95
  },
  {
    sub: "英语",
    score: 89
  }
]
let sum = arr.reduce( (prev , cur) => {
  return cur.score + prev
}, 0)
console.log("sum== ", sum )

在这里插入图片描述
reduce 求乘积

const arr = [1, 2, 3, 4, 5, 6]
let sum = arr.reduce( (prev , cur, index, arr) => {
   console.log( prev , cur, index, arr )
   return prev * cur;
 })
 console.log("sum== ", sum )

在这里插入图片描述
reduce 计算元素出现次数
注意: 必须给定一个空数组作为初始值

const arr = ['xiaoming', 'xiaoli', 'alice', 'xiaoming', 'xiaoli', 'xiaoming', 'jonh']
let sum = arr.reduce( (prev , cur) => {
  if(cur in prev ) {
    prev[cur] ++
  } else {
    prev[cur] = 1
  }
  return prev
}, {})
console.log("sum== ", sum )

在这里插入图片描述
reduce 数组去重
注意: 必须给定一个空数组作为初始值

const arr = ['xiaoming', 'xiaoli', 'alice', 'xiaoming', 'xiaoli', 'xiaoming', 'jonh']
let sum = arr.reduce( (prev , cur) => {
  if(!prev.includes(cur)) {
    return prev.concat(cur)
  } else {
    return prev
  }
}, [])
console.log("sum== ", sum )

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2241750.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FreeRTOS的列表与列表项

目录 1.为什么要学列表&#xff1f; 2.什么是列表和列表项&#xff1f; 2.1 列表 2.2列表项 2.3&#xff0c;迷你列表项 3.列表与列表项的初始化 3.1 列表初始化 3.2列表项初始化 4.列表项的“增删查”&#xff08;插入、删除、遍历&#xff09; 4.1列表项的插入 4.1.1…

数字IC后端教程之Innovus hold violation几大典型问题

今天小编给大家分享下数字IC后端实现Physical Implementation过程中经常遇到的几个hold violation问题。每个问题都是小编自己在公司实际项目中遇到的。 数字后端实现静态时序分析STA Timing Signoff之min period violation Q1: 在Innouvs postCTS时序优化的log中我们经常会看…

VS2022编译32位OpenCV

使用环境 Visual Studio 2022 OpenCV: 4.7.0 cmake: 3.30.2一、使用CMake工具生成vs2022的openCV工程解决方案 打开cmake&#xff0c;选择opencv的源代码目录&#xff0c;创建一个文件夹&#xff0c;作为VS工程文件的生成目录 点击configure构建项目&#xff0c;弹出构建设置…

企业生产环境-麒麟V10(ARM架构)操作系统部署Zookeeper单节点集群版

前言&#xff1a;ZooKeeper是一个分布式协调服务&#xff0c;它为分布式应用提供一致性服务&#xff0c;是Apache Hadoop的子项目。它被设计为易于编程&#xff0c;同时具有高性能和高可靠性。ZooKeeper提供了一个简单的接口和一些基本的文件系统操作&#xff0c;使得开发者能够…

vue3 中直接使用 JSX ( lang=“tsx“ 的用法)

1. 安装依赖 npm i vitejs/plugin-vue-jsx2. 添加配置 vite.config.ts 中 import vueJsx from vitejs/plugin-vue-jsxplugins 中添加 vueJsx()3. 页面使用 <!-- 注意 lang 的值为 tsx --> <script setup lang"tsx"> const isDark ref(false)// 此处…

深度学习服务器租赁AutoDL

1. 根据需要选择租用的显卡 算力市场 1.1 显卡选择 1.2 环境配置 2. 服务器使用 2.1 上传文件 2.2 调试环境 2.3 跑代码 python train.py && /usr/bin/shutdown # && /usr/bin/shutdown表示代码成功运行结束后&#xff0c;自动关机3. 省钱绝招 省钱绝招 …

IDEA部署AI代写插件

前言 Hello大家好&#xff0c;当下是AI盛行的时代&#xff0c;好多好多东西在AI大模型的趋势下都变得非常的简单。 比如之前想画一幅风景画得先去采风&#xff0c;然后写实什么的&#xff0c;现在你只需描述出你想要的效果AI就能够根据你的描述在几分钟之内画出一幅你想要的风景…

【大数据技术基础 | 实验十】Hive实验:部署Hive

文章目录 一、实验目的二、实验要求三、实验原理四、实验环境五、实验内容和步骤&#xff08;一&#xff09;安装部署&#xff08;二&#xff09;配置HDFS&#xff08;三&#xff09;启动Hive 六、实验结果&#xff08;一&#xff09;启动结果&#xff08;二&#xff09;Hive基…

Flume1.9.0自定义Sink组件将数据发送至Mysql

需求 1、将Flume采集到的日志数据也同步保存到MySQL中一份&#xff0c;但是Flume目前不支持直接向MySQL中写数据&#xff0c;所以需要用到自定义Sink&#xff0c;自定义一个MysqlSink。 2、日志数据默认在Linux本地的/data/log/user.log日志文件中&#xff0c;使用Flume采集到…

Onlyoffice配置一 JWT認證

案例 使用官網給c# MVC的例子&#xff0c;主要在版本7.2之後&#xff0c;默認加入JWT認證&#xff0c;docker版本尚且可以在创建的时候使用默认的指令避开&#xff0c;但是在exe版本&#xff0c;即使配置为false&#xff0c;重启之后也会默认开启。 简单说一下如何配置 配置J…

ZeroSSL HTTPS SSL证书ACMESSL申请3个月证书

目录 一、引言 二、准备工作 三、申请 SSL 证书 四、证书选型 五、ssl重要性 一、引言 目前免费 Lets Encrypt、ZeroSSL、BuyPass、Google Public CA SSL 证书&#xff0c;一般免费3-6个月。从申请难易程度分析&#xff0c;zerossl申请相对快速和简单&#xff0c;亲测速度非…

MySql 日期周处理方式

MySql 日期周处理方式 最近在做数仓相关工作&#xff0c;最近遇到 几个问题&#xff0c; 1、计算指定日期是一年中的第几周&#xff0c;周一为周的第一天 2、计算周的开始时间&#xff0c;结束时间 3、计算周对应的年 比如 2023-01-01 WEEKOFYEAR(2023-01-01) 是2022年的52周&…

STM32 BootLoader 刷新项目 (十) Flash擦除-命令0x56

STM32 BootLoader 刷新项目 (十) Flash擦除-命令0x56 1. STM32F407 BootLoader 中的 Flash 擦除功能详解 在嵌入式系统中&#xff0c;BootLoader 的设计是非常关键的部分&#xff0c;它负责引导主程序的启动、升级以及安全管理。而在 STM32F407 等 MCU 上实现 BootLoader&…

【Homework】【5】Learning resources for DQ Robotics in MATLAB

Lesson 5 代码-TwoDofPlanarRobot.m 表示一个 2 自由度平面机器人。该类包含构造函数、计算正向运动学模型的函数、计算平移雅可比矩阵的函数&#xff0c;以及在二维空间中绘制机器人的函数。 classdef TwoDofPlanarRobot%TwoDofPlanarRobot - 表示一个 2 自由度平面机器人类…

Uniapp 引入 Android aar 包 和 Android 离线打包

需求&#xff1a; 原生安卓 apk 要求嵌入到 uniapp 中&#xff0c;并通过 uniapp 前端调起 app 的相关组件。 下面手把手教你&#xff0c;从 apk 到 aar&#xff0c;以及打包冲突到如何运行&#xff0c;期间我所遇到的问题都会 一 一 进行说明&#xff0c;相关版本以我文章内为…

你可以通过以下步骤找到并打开 **Visual Studio 开发者命令提示符**:

你可以通过以下步骤找到并打开 Visual Studio 开发者命令提示符&#xff1a; 1. 通过开始菜单查找 打开 开始菜单&#xff08;点击屏幕左下角的 Windows 图标&#xff09;。在搜索框中输入 Developer Command Prompt。你应该看到以下几种选项&#xff08;具体取决于你的 Visu…

北京大学c++程序设计听课笔记101

基本概念 程序运行期间&#xff0c;每个函数都会占用一段连续的内存空间。而函数名就是该函数所占内存区域的起始地址&#xff08;也称“入口地址”&#xff09;。我们可以将函数的入口地址赋给一个指针变量&#xff0c;使该指针变量指向该函数。然后通过指针变量就可以调用这个…

(时序论文阅读)TimeMixer: Decomposable Multiscale Mixing for Time Series Forecasting

来源论文iclr2024 论文地址&#xff1a;https://arxiv.org/abs/2405.14616 源码地址&#xff1a; https://github.com/kwuking/TimeMixer 背景 数据是有连续性&#xff0c;周期性&#xff0c;趋势性的。我们这篇文章主要围绕的是用MLP结构来预测数据的周期性具体为&#xff…

Springboot 使用EasyExcel导出含图片并设置样式的Excel文件

Springboot 使用EasyExcel导出含图片并设置样式的Excel文件 Excel导出系列目录&#xff1a;★★★★尤其注意&#xff1a;引入依赖创建导出模板类逻辑处理controllerservice 导出效果总结 Excel导出系列目录&#xff1a; 【Springboot 使用EasyExcel导出Excel文件】 【Springb…

【论文分享】基于街景图像识别和深度学习的针对不同移动能力老年人的街道步行可达性研究——以南京成贤街社区为例

全球老龄化趋势加剧, 许多城市中老年人数量不断增加&#xff0c;而现有街道和社区基础设施往往未能满足其步行安全和便利需求。本次我们给大家带来一篇SCI论文的全文翻译&#xff0c;该论文通过探讨不同步行能力的老年人对城市步行环境的需求&#xff0c;提供了关于如何改善城市…