js数组与字符串方法

拼接方法

字符串拼接用 + 就行了,如 str1 + str2。数组则用 join() 方法把元素连起来,比如 arr.join(‘,’)。数组不能直接用 + 拼接,但两个数组相加会被转成字符串再拼接,这不是数组的拼接,而是字符串拼接行为。

let str1 = "Hello";
let str2 = "World";
let arr = ['Hello', 'World'];console.log(str1 + " " + str2); // "Hello World"
console.log(arr.join("-")); // "Hello-World"

切割方法

数组的splice方法

  1. start要添加/删除项目的起始位置。
  2. deleteCount (可选) - 从 start 开始要删除的项数。如果设为 0 或省略,则不会删除任何元素。
  3. item1, …, itemX (可选) - 要添加到数组中的新元素。如果没有提供,则只会删除元素。

splice 返回一个包含被删除元素的新数组。如果未删除任何元素,则返回空数组。

数组的slice方法

  1. start (可选) - 开始切片的位置。如果省略,那么切片开始于数组的第一个元素。
  2. end (可选) - 切片结束的位置(不包括此位置)。如果省略,那么切片会一直持续到数组的最后一个元素。

slice 返回一个新的数组,包含了从开始到结束的所有元素的浅拷贝。原始数组不会被修改。

字符串的split方法

  1. separator - 一个字符串或正则表达式,作为确定拆分点的模式。
  2. limit (可选) – 最大分割次数。如果省略,则所有可能的分割都会执行。

split 返回一个由子字符串组成的数组,这些子字符串是通过将字符串分割成多个部分创建的,分割依据是提供的分隔符或模式。

字符串的split方法

  1. start - 开始切片的位置。
  2. end 开始切片的位置。

slice 返回一个新的字符串,这个字符串是从原字符串中切片得到的。

数组的 splice 方法允许你向数组中添加或移除项目,同时返回被移除的项目。它会改变原数组。而 slice 方法则是从已有的数组中返回选定的元素到一个新的数组,原数组不会被修改。

字符串的 split 方法是将字符串分割成字符串数组,而 slice 方法则用于提取字符串的某个部分,并以新的字符串形式返回。

// 数组的 splice 和 slice 方法
let numbers = [1, 2, 3, 4, 5];
let removedElements = numbers.splice(1, 2); // 移除索引1和2的元素console.log(numbers); // [1, 4, 5]
console.log(removedElements); // [2, 3]let slicedNumbers = numbers.slice(0, 2); // 从索引0开始到索引1,不包括2console.log(slicedNumbers); // [1, 4]// 字符串的 split 和 slice 方法
let text = "Hello, World!";
let words = text.split(", "); // 根据逗号和空格分割console.log(words); // ["Hello", "World!"]let partOfText = text.slice(7, 12); // 提取索引7到11的字符,不包括12console.log(partOfText); // "World"

相互转换方法

数组可以调用 toString()join() 变成字符串。字符串可以通过 Array.from()str.split(‘’) 转换为数组。

let arr = [1, 2, 3];
let str = arr.toString();console.log(str); // "1,2,3"let str2 = "Hello";
let arr2 = Array.from(str2);console.log(arr2); // ["H", "e", "l", "l", "o"]

定义与初始化方法

只有字符串才能通过 ‘hello’“world” 这样的方式直接初始化。而数组呢,必须用 [1, 2, ‘three’] 这样的形式,每个元素之间要用逗号 , 分开。至于字符串里的空格嘛,它只是字符串的一部分,不是一个单独的元素。

// 初始化字符串
let str = "Hello";// 初始化数组
let arr = [1, 2, 3];

长度属性

两者获取长度的方法都叫做 .length,但是,千万记得这是它们各自的属性,并不是通用的!

let str = "Hello";
let arr = [1, 2, 3];console.log(str.length); // 5
console.log(arr.length); // 3

索引访问

第一个元素访问很简单,不管是数组还是字符串,都是 arr[0] 或者 str[0]。最后一个元素嘛,数组是 arr[arr.length - 1],字符串是 str[str.length - 1]。访问方式是一样的,都是用方括号加下标,不过,字符串返回的是单个字符,数组可是任何类型的数据!

let str = "Hello";
let arr = [1, 2, 3];console.log(str[0]); // "H"
console.log(arr[0]); // 1
console.log(str[str.length - 1]); // "o"
console.log(arr[arr.length - 1]); // 3

遍历与迭代

数组可以用 for 循环、for…offorEach() 遍历,字符串也差不多,但因为它是不可变的字符序列,所以 for…of 更常用。至于 for…in,它更适合用于对象,包括数组获取键值,但在字符串上用的话,会遍历每个字符的索引。

let str = "Hello";
let arr = [1, 2, 3];for (let char of str) {console.log(char);
}
for (let elem of arr) {console.log(elem);
}

进阶技巧

使用 reduce() 方法可以动态构建字符串,配合 slice() 调整格式。模板字面量 (`) 可以在字符串中嵌入变量,使用 ${} 插入变量值,让字符串构造更直观。

let arr = [1, 2, 3];
let str = arr.reduce((acc, curr) => acc + '-' + curr, '').slice(1);console.log(str); // "1-2-3"let name = "John";
let greeting = `Hello, ${name}!`;console.log(greeting); // "Hello, John!"

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

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

相关文章

Chapter12 屏幕后处理效果——Shader入门精要学习笔记

Chapter12 屏幕后处理效果 一、屏幕后处理概述以及基本脚本系统1.OnRenderImage 函数 —— 获取屏幕图像2.Graphics.Blit 函数 —— 使用特定的Shader处理3.在Unity中实现屏幕后处理的基本流程4.屏幕后处理基类 二、调整亮度、饱和度和对比度1.BrightnessSaturationAndContrast…

GESP CCF C++ 三级认证真题 2024年6月

第 1 题 小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证考试的第1级,那他可以选择的认证语言有()种。 A. 1 B. 2 C. 3 D. 4 第 2 题 下面流程图在yr输入2024时,可以判定yr代表闰年,并输出 2月是29天 &#x…

深度学习,人工智能

人工智能,代跑通,预测模型,模型优化,增加模块,文章复现,python代做,预测,微调,融合,深度学习,机器学习程序代写,环境调试,…

20240718 每日AI必读资讯

大模型集体失智!9.11和9.9哪个大,几乎全翻车了 - AI处理常识性问题能力受限,9.11>9.8数学难题暴露了AI短板。 - 训练数据偏差、浮点精度问题和上下文理解不足是AI在数值比较任务上可能遇到的困难。 - 改进AI需优化训练数据、Pr…

Tailwind CSS指南

使用和配置 Tailwind CSS 的完整指南 Tailwind CSS 是一个功能类优先的 CSS 框架,允许你快速构建现代的网站。它提供了一组预定义的实用工具类,可以直接在 HTML 中使用,以实现各种样式效果。本文将详细讲解如何使用和配置 Tailwind CSS&…

spark的相关知识点

2024.6.19 1.scala:语言 2.spark:框架(jar包) 3.spark streaming:kafka 4.spark mlib:机器学习 算法 5.解释 Class:类Case Class:样例类Object:对象User:类Ne…

阿里云国际站:海外视频安全的DRM加密

随着科技的进步,视频以直播或录播的形式陆续开展海外市场,从而也衍生出内容安全的问题,阿里云在这方面提供了完善的内容安全保护机制,适用于不同的场景,如在视频安全提供DRM加密。 由图可以了解到阿里云保护直播安全的…

Electron 应用关闭突出程序坞

在Electron应用中,处理窗口关闭并使其最小化到Mac系统的程序坞(Dock)而不是完全退出应用,通常涉及到监听窗口的关闭事件(close事件)并在适当时机阻止其默认行为。以下是一些步骤和关键点,帮助实现这一功能: 1. 监听窗口关闭事件 在Electron的主进程(main process)中…

请求通过Spring Cloud Gateway 503

最近想处理一个通用的网关服务。 但是我在处理好所有配置的时候发现,网络请求过网关的时候,一直503,我所有的配置都没问题。 环境: JDK: 17 Spring Cloud: 2023.0.2 在 Spring Cloud Gateway 的早期版本中&#xff…

如何应用CDP做好客户标签管理?

​标签是对客户的特征标识,是经过人为再加工后的结果,相对于传统意义的标签,CDP客户数据平台更侧重于客户动态的行为,标签的加工随着用户行为的变化实时更新,帮助客户捕捉用户每个阶段的动态特征与需求。 如何应用CDP做…

【ROS】的软件包应用商店使用-以小乌龟为例

文章目录 环境效果图介绍安装使用总结 环境 在Ubuntu20.04系统下运行 效果图 介绍 ros应用商店,里面有大量ros可使用的软件。 下面以ros经典的控制小乌龟为例。 安装 安装控制器 sudo apt install ros-noetic-rqt-robot-steering安装小乌龟 sudo apt insta…

Spring中事务是如何实现的?

在Spring中,事务管理是通过AOP(面向切面编程)和代理模式实现的。Spring提供了声明式事务管理,允许开发者通过简单的配置来管理事务,而不需要手动编写事务管理的代码。 概述: 1.Spring事务底层是基于数据库事…

微软GraphRAG +本地模型+Gradio 简单测试笔记

安装 pip install graphragmkdir -p ./ragtest/input#将文档拷贝至 ./ragtest/input/ 下python -m graphrag.index --init --root ./ragtest修改settings.yaml encoding_model: cl100k_base skip_workflows: [] llm:api_key: ${GRAPHRAG_API_KEY}type: openai_chat # or azu…

uniapp踩坑之项目:uni-table垂直居中和水平居中

uni-table 中的水平居中uni-td align"center"&#xff0c;css里的属性vertical-align: middle //html 水平居中<uni-table ref"table" :loading"loading" border stripe emptyText"暂无更多数据"><uni-tr><uni-th :wid…

[HDCTF2019]MFC

[HDCTF2019]MFC-CSDN博客 不会写 完全画瓢 我还以为win32什么系统逆向 原来是小瘪三! VM保护 下载xspy(看雪上有) 打开32位的 再打开 这个窗口 把这个放大镜托到这个大窗口(里面有个小窗口,不要托错了) 下面这个 onmeg 就她不正常,是什么0464 #include <stdio.h&g…

mac环境下安装python3的图文教程

Python 是一种功能多样且强大的编程语言&#xff0c;在各个领域得到广泛应用。许多 Mac 用户都在其设备上安装和运行 Python&#xff0c;以运行特定的应用程序或创建、运行自己的 Python 脚本。 文章源自设计学徒自学网-http://www.sx1c.com/49441.html 虽然某些版本的 macOS…

GO——GMP 好文整理

GMP相关好文推荐&#xff1a; Golang 调度器设计思想、GMP 协程调度模型详解 Golang的协程调度器原理及GMP设计思想 Golang调度器GMP原理与调度全分析

lua 游戏架构 之 资源加载 LoaderManager (一)

定义一个 LoaderManager class&#xff0c;用于管理各种资源加载器。它使用了对象池&#xff08;Object Pool&#xff09;来优化资源加载器的创建和销毁&#xff0c;从而提高性能 举例定义一个 PrefabLoader --[[Desc: 封装AAS的接口&#xff0c;加载Prefab --]]---alias Pre…

STM32判断休眠

STM32是否进入休眠模式(或称为睡眠模式)的判断主要基于其功耗状态、内部时钟的关闭情况以及唤醒后的行为。以下是根据参考文章提供的信息,判断STM32是否进入休眠模式的方法: 功耗状态: STM32在休眠模式下,功耗会显著降低。这是因为休眠模式仅关闭了内核时钟,但外设仍然保…

MySQL 实现模糊匹配

摘要&#xff1a; 在不依赖Elasticsearch等外部搜索引擎的情况下&#xff0c;您依然能够充分利用MySQL数据库内置的LIKE和REGEXP操作符来实现高效的模糊匹配功能。针对更为复杂的搜索需求&#xff0c;尤其是在处理大型数据集时&#xff0c;结合使用IK分词器&#xff08;虽然IK…