当前位置: 首页 > news >正文

【掌握 JavaScript 数组迭代:map 和 includes 的使用技巧】

map

map()方法是数组原型的一个函数,用于对数组的每个元素执行一个函数,并返回一个新的数组,其中包含么哦一个元素执行的结果。

语法

const newArray = array.map(callback(currentValue, index, arr), thisValue)

参数

callback:表示对数组中的每个元素要执行的函数,该函数包含三个参数:

  • currentValue:当前正在处理的元素。
  • index(可选):当前正在处理的元素的索引。
  • arr(可选):调用 map 方法的数组。

thisValue:可选参数,表示实行callback函数时的this指向

示例

let num: number[] = [1, 2, 3, 4, 5];// #region 基本用法
let doubled = num.map((item) => {return item * 2;
})
console.log(doubled); // [2, 4, 6, 8, 10]
// #endregion//  #region 将对象数组转换为属性值数组
let objects = [{ name: 'apple', color: 'red' }, { name: 'banana', color: 'yellow' }, { name: 'orange', color: 'orange' }];
let colors = objects.map((item) => {if(item.color !='yellow')  return item.color
})
console.log(colors); // [ 'red', undefined, 'orange' ]
// #endregion// #region map this指向
let num2: number[] = [1, 2, 3, 4, 5];
let obj = { multiplier: 2 };
let doubled2 = num2.map(function (item) {return item * this.multiplier;
}, obj);
console.log(doubled2); // [2, 4, 6, 8, 10]
// #endregion

includes

includes 是 JavaScript 数组和字符串原型上的一个方法用于检查某个值是否存在于数组或字符串中。它返回一个布尔值:如果找到了该值,则返回 true;否则返回 false

语法

  • searchElement:必需。要在数组中查找的元素。
  • fromIndex:可选。开始搜索的位置。如果该索引值大于或等于数组长度,则该方法返回 false,因为搜索区间为空。如果省略,则从索引 0 开始搜索。如果是负数,则它代表从数组末尾开始计算的位置。即使该位置是负数,检查时仍是从前往后检查。
arr.includes(searchElement[, fromIndex = 0])

示例

/*** includes 方法用来判断一个数组是否包含一个指定的值,如果包含则返回 true ,否则返回 false。* 语法:* array.includes(searchElement,fromIndex)*/let arr: number[] = [1, 2, 3];
console.log( `查询数组 arr 中是否存在 1 :${arr.includes(1)}` ); // 查询数组 arr 中是否存在 1 :true
console.log( `查询数组 arr 中是否存在 4 :${arr.includes(4)}` ); // 查询数组 arr 中是否存在 4 :falseconsole.log( `从 arr 的索引 2 开始查找,是否存在 1 :${arr.includes(1, 2)}` ); // 从 arr 的索引 2 开始查找,是否存在 1 :false
console.log( `从 arr 的索引 0 开始查找,是否存在 2 : ${arr.includes(2, 0)}` ); // 从 arr 的索引 0 开始查找,是否存在 2 : true
console.log( `从 arr 的索引 -1 开始查找,是否存在 1 :${arr.includes(1, -1)}` ); // 从 arr 的索引 -1 开始查找,是否存在 1 :false/*** 当 fromIndex 为负数时,则它代表从数组末尾开始计算的位置;fromIndex 的值是负数时,* 如果数组长度小于 fromIndex 的绝对值,则 fromIndex 的值等于 0。*/// arr.length = 3
// arr.includes(1,-1) 等价于 arr.includes(1,2)
console.log( arr.includes(1,-1) ) // false
// arr.includes(2,-2) 等价于 arr.includes(2,1)
console.log( arr.includes(2,-2) ) // true
// arr.includes(2,-4) 等价于 arr.includes(2,0)
console.log( arr.includes(2,-4) ) // true

相关文章:

【掌握 JavaScript 数组迭代:map 和 includes 的使用技巧】

map map()方法是数组原型的一个函数,用于对数组的每个元素执行一个函数,并返回一个新的数组,其中包含么哦一个元素执行的结果。 语法 const newArray array.map(callback(currentValue, index, arr), thisValue)参数 callback&#xff1…...

深入浅出 Android AES 加密解密:从理论到实战

深入浅出 Android AES 加密解密:从理论到实战 在现代移动应用中,数据安全是不可忽视的一环。无论是用户隐私保护,还是敏感信息的存储与传输,加密技术都扮演着重要角色。本文将以 AES(Advanced Encryption Standard&am…...

Clickhouse基础(一)

数据存储的目录,在存储数据时是先经过压缩后再存储的,压缩效率很高 操作命令: sudo clickhouse start sudo clickhouse restart sudo clickhouse status进入clickhouse clickhouse-client -mCREATE TABLE db_13.t_assist (modelId UInt64,…...

深度学习|表示学习|一个神经元可以干什么|02

如是我闻: 如果我们只有一个神经元(即一个单一的线性或非线性函数),仍然可以完成一些简单的任务。以下是一个神经元可以实现的功能和应用: 1. 实现简单的线性分类 输入:一组特征向量 x x x 输出&#xff…...

ubuntu22.04降级安装CUDA11.3

环境:主机x64的ubuntu22.04,原有CUDA12.1,但是现在需要CUDA11.3,本篇文章介绍步骤。 一、下载CUDA11.3的run文件 下载网址:https://developer.nvidia.com/cuda-11-3-1-download-archive?target_osLinux&target_…...

为AI聊天工具添加一个知识系统 之32 三“中”全“会”:推理式的ISA(父类)和IOS(母本)以及生成式CMN (双亲委派)之1

本文要点和问题 要点 三“中”全“会”:推理式的ISA的(父类-父类源码)和IOS的(母本-母类脚本)以及生成式 CMN (双亲委派-子类实例)。 数据中台三端架构的中间端(信息系统架构ISA &#xff1a…...

Python----Python高级(函数基础,形参和实参,参数传递,全局变量和局部变量,匿名函数,递归函数,eval()函数,LEGB规则)

一、函数基础 1.1、函数的用法和底层分析 函数是可重用的程序代码块。 函数的作用,不仅可以实现代码的复用,更能实现代码的一致性。一致性指的是,只要修改函数的代码,则所有调用该函数的地方都能得到体现。 在编写函数时&#xf…...

spring解决循环依赖的通俗理解

目录标题 1、什么是循环依赖2、解决循环依赖的原理3、Spring通过三级缓存解决循环依赖4、为什么要使用三级缓存而不是二级缓存?5、三级缓存中存放的是lambda表达式而不是一个半成品对象 1、什么是循环依赖 众所周知,Spring的容器中管理整个体系的bean对…...

用 Python 从零开始创建神经网络(十九):真实数据集

真实数据集 引言数据准备数据加载数据预处理数据洗牌批次(Batches)训练(Training)到目前为止的全部代码: 引言 在实践中,深度学习通常涉及庞大的数据集(通常以TB甚至更多为单位)&am…...

介绍PyTorch张量

介绍PyTorch张量 介绍PyTorch张量 PyTorch张量是我们在PyTorch中编程神经网络时将使用的数据结构。 在编程神经网络时,数据预处理通常是整个过程的第一步,数据预处理的一个目标是将原始输入数据转换为张量形式。 torch.Tensor​类的实例 PyTorch张量…...

Vision Transformer (ViT)原理

Vision Transformer (ViT)原理 flyfish Transformer缺乏卷积神经网络(CNNs)的归纳偏差(inductive biases),比如平移不变性和局部受限的感受野。不变性意味着即使实体entity(即对象)的外观或位…...

移动云自研云原生数据库入围国采!

近日,中央国家机关2024年度事务型数据库软件框架协议联合征集采购项目产品名单正式公布,移动云自主研发的云原生数据库产品顺利入围。这一成就不仅彰显了移动云在数据库领域深耕多年造就的领先技术优势,更标志着国家权威评审机构对移动云在数…...

Unity中对象池的使用(用一个简单粗暴的例子)

问题描述:Unity在创建和销毁对象的时候是很消耗性能的,所以我们在销毁一个对象的时候,可以不用Destroy,而是将这个物体隐藏后放到回收池里面,当再次需要的时候如果回收池里面有之前回收的对象,就直接拿来用…...

linux命令行连接Postgresql常用命令

1.linux系统命令行连接数据库命令 psql -h hostname -p port -U username -d databasename -h 主机名或IP地址 -p 端口 -U 用户名 -d 连接的数据库 2.查询数据库表命令 select version() #查看版本号 \dg #查看用户 \l #查询数据库 \c mydb #切换…...

每日一题-单链表排序

为了对给定的单链表按升序排序,我们可以考虑以下解决方法: 思路 归并排序(Merge Sort):由于归并排序的时间复杂度为 O ( n log ⁡ n ) O(n \log n) O(nlogn),并且归并排序不需要额外的空间(空…...

webpack04服务器配置

webpack配置 entryoutput filenamepathpublicPath 。。 打包引入的基本路径,,,比如引入一个bundle.js,。引用之后的路径就是 publicPathfilename -devServer:static : 静态文件的位置。。。hostportopencompress : 静态资源是否用gzip压缩hi…...

JDK下载安装配置

一.JDK安装配置。 1.安装注意路径,其他直接下一步。 2.配置。 下接第4步. 或者 代码复制: JAVA_HOME D:\Program Files\Java\jdk1.8.0_91 %JAVA_HOME%\bin 或者直接配置 D:\Program Files\Java\jdk1.8.0_91\bin 3.验证(CMD)。 java javac java -version javac -version 二.下…...

30_Redis哨兵模式

在Redis主从复制模式中,因为系统不具备自动恢复的功能,所以当主服务器(master)宕机后,需要手动把一台从服务器(slave)切换为主服务器。在这个过程中,不仅需要人为干预,而且还会造成一段时间内服务器处于不可用状态,同时数据安全性也得不到保障,因此主从模式的可用性…...

NLP三大特征抽取器:CNN、RNN与Transformer全面解析

引言 自然语言处理(NLP)领域的快速发展离不开深度学习技术的推动。随着应用需求的不断增加,如何高效地从文本中抽取特征成为NLP研究中的核心问题。深度学习中三大主要特征抽取器——卷积神经网络(Convolutional Neural Network, …...

《使用 YOLOV8 和 KerasCV 进行高效目标检测》

《使用 YOLOV8 和 KerasCV 进行高效目标检测》 作者:Gitesh Chawda创建日期:2023/06/26最后修改时间:2023/06/26描述:使用 KerasCV 训练自定义 YOLOV8 对象检测模型。 (i) 此示例使用 Keras 2 在 Colab 中…...

从‘抢红包’到自动化测试:安卓AccessibilityService实战进阶指南(附完整Demo)

从‘抢红包’到自动化测试:安卓AccessibilityService实战进阶指南 在移动应用开发领域,自动化测试和效率工具的需求日益增长。AccessibilityService作为安卓系统提供的一套强大API,最初被广泛用于辅助功能开发,如今已成为实现UI自…...

提升五倍效率:基于快马平台优化openclaw数据采集工作流

最近在做一个数据采集项目时,发现传统的手动编写爬虫脚本效率实在太低了。每次遇到反爬机制或者需要调整采集策略时,都要花大量时间修改代码。后来尝试用openclaw结合InsCode(快马)平台来优化工作流,效率直接提升了五倍多,这里分享…...

OpenClaw断点续跑:千问3.5-35B-A3B-FP8长任务中断恢复方案

OpenClaw断点续跑:千问3.5-35B-A3B-FP8长任务中断恢复方案 1. 当长任务遇上网络波动:我的深夜崩溃时刻 上周三凌晨2点,我正用OpenClaw对接千问3.5模型处理一批产品说明文档的自动化翻译任务。这个需要连续执行3小时的流程已经跑了80%&#…...

开发提效利器:基于快马平台构建可复用的mcp工具连接池

最近在开发AI应用时,经常需要连接各种外部服务,每次都要重复写一堆适配代码,特别浪费时间。后来发现用MCP协议统一管理这些连接可以大幅提升效率,于是在InsCode(快马)平台上搭建了一个可复用的MCP工具连接池模板,现在分…...

OpenClaw模型热更新方案:千问3.5-35B-A3B-FP8无缝升级

OpenClaw模型热更新方案:千问3.5-35B-A3B-FP8无缝升级 1. 为什么需要模型热更新? 上周我在本地部署的千问3.5-32B模型突然开始频繁报错——新发布的API文档解析任务完全无法执行。查看日志才发现,模型对某些专业术语的理解已经落后于最新技…...

告别“unknown type name ‘QCharts‘”:从命名空间缺失到项目配置的完整避坑指南

1. 当Qt遇上QCharts:一场命名空间的误会 刚接触Qt开发的朋友们,十有八九会在使用QCharts模块时遇到这个经典的错误提示:"unknown type name QCharts"。这就像你兴冲冲地准备做蛋糕,却发现面粉袋上写着"请先解开绳子…...

3分钟掌握:让PPT公式排版效率提升10倍的LaTeX插件使用指南

3分钟掌握:让PPT公式排版效率提升10倍的LaTeX插件使用指南 【免费下载链接】latex-ppt Use LaTeX in PowerPoint 项目地址: https://gitcode.com/gh_mirrors/la/latex-ppt 在学术报告和技术演示中,数学公式的排版质量直接影响内容专业性。然而&am…...

RocketMQ 5.1与SpringBoot3兼容性指南:从报错分析到完美避坑的全流程

RocketMQ 5.1与SpringBoot3兼容性实战:从报错解析到完美集成的技术指南 最近在技术社区看到不少开发者反馈SpringBoot3集成RocketMQ时遇到的兼容性问题。作为一个经历过这个"坑"的过来人,我决定把完整的排查思路和解决方案整理出来。这个问题看…...

重新定义内容采集:抖音下载器的架构哲学与实践路径

重新定义内容采集:抖音下载器的架构哲学与实践路径 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support.…...

腾讯混元翻译模型部署全攻略:HY-MT1.5-1.8B离线翻译系统搭建

腾讯混元翻译模型部署全攻略:HY-MT1.5-1.8B离线翻译系统搭建 1. 项目背景与模型介绍 在当今全球化商业环境中,语言障碍仍然是企业跨国运营的主要挑战之一。腾讯混元团队推出的HY-MT1.5-1.8B翻译模型,是一款专为企业级应用设计的高性能机器翻…...