javascript 的map()和join()
map()和join()
1. map()方法
- 定义
map()
是JavaScript数组的一个高阶函数。它创建一个新数组,这个新数组中的元素是原始数组中的元素经过某种函数处理后的结果。
- 语法
array.map(callback(element[, index[, array]])[, thisArg])
- 其中
callback
是一个函数,它会被应用到数组中的每个元素上。这个函数可以接受最多三个参数:element
:当前正在处理的数组元素。index
(可选):当前元素的索引。array
(可选):调用map
方法的原始数组。
thisArg
(可选):执行callback
函数时this
的值。
- 示例
- 假设我们有一个数组
[1, 2, 3, 4]
,我们想将每个元素都乘以2:-
const numbers = [1, 2, 3, 4]; const newNumbers = numbers.map(function(num) {return num * 2; }); console.log(newNumbers); // [2, 4, 6, 8]
-
- 我们还可以使用箭头函数来简化写法:
-
const numbers = [1, 2, 3, 4]; const newNumbers = numbers.map(num => num * 2); console.log(newNumbers); // [2, 4, 6, 8]
-
- 假设我们有一个数组
2. join()方法
- 定义
join()
方法用于把数组中的所有元素转换为一个字符串,并将这些字符串连接在一起,中间用指定的分隔符隔开。如果没有指定分隔符,默认使用逗号(,
)。
- 语法
array.join([separator])
- 其中
separator
是可选的,用于指定连接数组元素的分隔符。
- 示例
- 假设我们有一个数组
['apple', 'banana', 'cherry']
:-
const fruits = ['apple', 'banana', 'cherry']; const fruitsString = fruits.join(', '); console.log(fruitsString); // "apple, banana, cherry"
-
- 如果不使用分隔符:
-
const fruits = ['apple', 'banana', 'cherry']; const fruitsString = fruits.join(); console.log(fruitsString); // "apple,banana,cherry"
-
- 假设我们有一个数组
通过JavaScript的map()
和join()
方法来渲染页面
通过JavaScript的map()
和join()
方法来渲染页面的几种常见场景示例,这里以在HTML页面中渲染一个简单的列表和拼接文本内容为例:
一、渲染HTML列表(无框架情况,纯JavaScript操作DOM)
假设你有一个JavaScript数组,想要将数组中的元素渲染成一个HTML列表(<ul>
标签包裹的<li>
列表项)显示在页面上。
- HTML结构(基础页面框架)
首先,在HTML文件中有一个空的<div>
元素,用来放置我们要渲染生成的列表,示例如下:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Map and Join Example</title>
</head><body><div id="list-container"></div><script src="script.js"></script>
</body></html>
- JavaScript代码(使用
map()
和join()
)
在对应的script.js
文件中,编写如下代码:
// 示例数据数组,这里可以替换成从后端获取的数据等实际数据来源
const items = ['苹果', '香蕉', '橙子'];// 使用map方法生成包含li元素的数组
const liElements = items.map(item => `<li>${item}</li>`);// 使用join方法将li元素数组拼接成一个完整的字符串
const listHtml = `<ul>${liElements.join('')}</ul>`;// 获取页面中用来放置列表的div元素
const listContainer = document.getElementById('list-container');// 将生成的HTML字符串插入到div元素中
listContainer.innerHTML = listHtml;
在上述代码中:
- 首先通过
map()
方法遍历items
数组,对每个元素都创建一个对应的<li>
标签字符串,形成一个新的包含<li>
标签字符串的数组liElements
。 - 接着使用
join('')
方法(这里传入空字符串作为分隔符,因为我们不需要在<li>
元素之间添加额外字符)将这个数组拼接成一个完整的字符串,然后将其包裹在<ul>
标签内形成最终的列表HTML字符串listHtml
。 - 最后找到页面中的
list-container
元素,并通过设置innerHTML
属性将生成的HTML字符串插入到页面中,从而实现了列表的渲染。
二、拼接文本内容并显示在页面上(比如在一个段落中展示)
- HTML结构(基础页面框架)
同样先创建一个基本的HTML页面,包含一个空的<p>
元素用来显示拼接后的文本,示例如下:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Text Join Example</title>
</head><body><p id="text-container"></p><script src="script.js"></script>
</body></html>
- JavaScript代码(使用
map()
和join()
)
在script.js
文件中编写代码:
const words = ['今天', '天气', '真好'];// 使用map方法给每个单词添加一些样式(这里只是示例,简单包裹在一个span标签中)
const styledWords = words.map(word => `<span style="color: blue;">${word}</span>`);// 使用join方法将带有样式的单词拼接成一个完整的字符串
const textContent = styledWords.join(' ');// 获取页面中的p元素用来放置文本内容
const textContainer = document.getElementById('text-container');// 将拼接好的文本内容插入到p元素中
textContainer.innerHTML = textContent;
在这个示例里:
- 先是利用
map()
函数给每个单词添加了简单的样式(用<span>
标签包裹并设置文字颜色),生成了新的包含样式的单词字符串数组styledWords
。 - 然后通过
join(' ')
方法(这里以空格作为分隔符,因为要按照正常的文本格式来拼接单词)将这些字符串拼接成完整的文本内容字符串textContent
。 - 最后将其插入到页面的
<p>
元素中,实现了带有样式的文本在页面上的展示。
需要注意的是,在实际更复杂的页面渲染场景中,尤其是涉及到大型项目和复杂交互时,通常会结合前端框架(如Vue.js、React等)来进行更高效、便捷的页面渲染操作,但理解map()
和join()
这些基础方法在简单渲染方面的运用,有助于更好地掌握JavaScript操作DOM和数据处理的逻辑。
相关文章:
javascript 的map()和join()
map()和join() 1. map()方法 定义 map()是JavaScript数组的一个高阶函数。它创建一个新数组,这个新数组中的元素是原始数组中的元素经过某种函数处理后的结果。 语法 array.map(callback(element[, index[, array]])[, thisArg])其中callback是一个函数࿰…...

深入理解 PyTorch 自动微分机制与自定义 torch.autograd.Function
文章目录 前言一、pytorch使用现有的自动微分机制二、torch.autograd.Function中的ctx解读1、forward 方法中的 ctx2、backward 方法中的 ctx3、小结 三、pytorch自定义自动微分函数(torch.autograd.Function)1、torch.autograd.Function计算前向与后向传…...
《C++ 赋能 K-Means 聚类算法:开启智能数据分类之旅》
在当今数字化浪潮汹涌澎湃的时代,人工智能无疑是引领科技变革的核心驱动力之一。而在人工智能的广袤天地中,数据分类与聚类作为挖掘数据内在价值、揭示数据潜在规律的关键技术手段,正发挥着前所未有的重要作用。K-Means 聚类算法,…...

对 JavaScript 说“不”
JavaScript编程语言历史悠久,但它是在 1995 年大约一周内创建的。 它最初被称为 LiveScript,但后来更名为 JavaScript,以赶上 Java 的潮流,尽管它与 Java 毫无关系。 它很快就变得非常流行,推动了 Web 应用程序革命&…...

spring下的beanutils.copyProperties实现深拷贝
spring下的beanutils.copyProperties方法是深拷贝还是浅拷贝?可以实现深拷贝吗? 答案:浅拷贝。 一、浅拷贝深拷贝的理解 简单说拷贝就是将一个类中的属性拷贝到另一个中,对于BeanUtils.copyProperties来说,你必须保…...
蓝桥杯二分题
P1083 [NOIP2012 提高组] 借教室 题目描述 在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。 面对海量租…...

3D数字化革新,探索博物馆的正确打开新方式!
3D数字化的发展,让博物馆也焕发新机,比如江苏省的“云上博物”,汇聚江苏全省博物馆展陈资源,采取线上展示和线下体验两种方式进行呈现的数字展览项目。在线上,用户可以通过H5或小程序进入“云上博物”数字展览空间&…...
工业检测基础-工业相机选型及应用场景
以下是一些常见的工业检测相机种类、检测原理、应用场景及选型依据: 2D相机 检测原理:基于二维图像捕获,通过分析图像的明暗、纹理、颜色等信息来检测物体的特征和缺陷.应用场景:广泛应用于平面工件的外观检测,如检测…...

通过 FRP 实现 P2P 通信:控制端与被控制端配置指南
本文介绍了如何通过 FRP 实现 P2P 通信。FRP(Fast Reverse Proxy)是一款高效的内网穿透工具,能够帮助用户突破 NAT 和防火墙的限制,将内网服务暴露到公网。通过 P2P 通信方式,FRP 提供了更加高效、低延迟的网络传输方式…...

即时通信系统项目总览
聊天室服务端项目总体介绍 本项目是一个全栈的即时通信系统, 前端使用QT实现聊天客户端, 后端采⽤微服务框架设计, 由网关子服务统一接收客户端的请求, 再分发到不同的子服务上处理并将结果返回给网关, 网关再将响应转发给客户端 拆分的微服务包含: 网关服务器&…...

QT获取tableview选中的行和列的值
查询数据库数据放入tableview(tableView_database)后 QSqlQueryModel* sql_model new QSqlQueryModel(this);sql_model->setQuery("select * from dxxxb_move_lot_tab");sql_model->setHeaderData(0, Qt::Horizontal, tr("id&quo…...

GDPU 人工智能 期末复习
1、python基础 2、回归、KNN、K-Means、搜索方法思想及算法实现步骤 3、知识表示基本概念 4、状态空间的相关概念、表示方法及应用 5、图搜索策略及应用 6、问题归约概念、与或图搜索、博弈树搜索与剪枝 7、决策树、贝叶斯决策算法及其应用 8、神经网络与深度学习基本概念 一、…...

编程之路,从0开始:补充篇
Hello大家好!很高兴和大家又见面啦!给生活添点passion,开始今天的编程之路! 我的博客:<但凡. 我的专栏:《编程之路》、《题海拾贝》、《数据结构与算法之美》 欢迎点赞,关注! 这篇…...
使用缓存提升Web应用性能:从新手到高手的实践指南
引言 在现代Web开发中,性能优化是确保用户体验和系统稳定性的关键。使用缓存是提升网站性能的有效手段之一,可以显著减少数据库访问和计算开销。根据“网站优化第一定律”,缓存可以提升网站的响应速度,减少延迟,从而改…...

【数字电路与逻辑设计】实验一 序列检测器
文章总览:YuanDaiMa2048博客文章总览 【数字电路与逻辑设计】实验一 序列检测器 一、实验内容二、设计过程(一)作出状态图或状态表(二)状态化简(三)状态编码 三、源代码(一ÿ…...

运动模糊效果
1、运动模糊效果 运动模糊效果,是一种用于 模拟真实世界中快速移动物体产生的模糊现象 的图像处理技术,当一个物体以较高速度移动时,由于人眼或摄像机的曝光时间过长,该物体会在图像中留下模糊的运动轨迹。这种效果游戏、动画、电…...

养老护理员培训考试题库;免费题库;大风车题库
下载链接:大风车题库-文件 大风车题库网站:大风车题库 大风车excel(试题转excel):大风车excel...
Python-配置模块configparser使用指南
configparser 是 Python 标准库中的模块,用于处理配置文件(如 .ini 文件)。它适合管理程序的配置信息,比如数据库连接参数、应用程序设置等。 1. 配置文件的基本结构 配置文件通常是 .ini 格式,由 节(Sec…...
C++的HDF5库将h5图像转为tif格式:szip压缩的图像也可转换
本文介绍基于C 语言的hdf5库与gdal库,将.h5格式的多波段HDF5图像批量转换为.tif格式的方法;其中,本方法支持对szip压缩的HDF5图像(例如高分一号卫星遥感影像)加以转换。 将HDF5图像批量转换为.tif格式,在部…...

【JAVA】Java第十三节:String类(String相关方法,以及StrinBuftrer , StringBulder相关方法)
本文详细介绍了String类以及常用的String相关方法,以及StrinBuftrer , StringBulder相关方法的使用,建议有印象即可,不需要都记住,使用时去查取即可 一、创建一个String类型的变量 我们平时创建String类型的变量一般是第一种形式…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...