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

JavaScript中 join()、split()、slice()函数的用法及区别

在刷力扣时,这几个函数在字符串数组问题处理时经常会用到,但总容易搞混,现将它们总结下,方便下次查看

一:Array.prototype.join()

join()方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串,用逗号或指定的分隔符字符串分隔。如果数组只有一个元素,那么将返回该元素而不使用分隔符。

const elements = ['Fire', 'Air', 'Water'];

console.log(elements.join());
// Expected output: "Fire,Air,Water"

console.log(elements.join(''));
// Expected output: "FireAirWater"

console.log(elements.join('-'));
// Expected output: "Fire-Air-Water"
  • 函数中的参数如果省略,数组元素用逗号(,分隔。如果是空字符串("",则所有元素之间没有任何字符
  • 如果一个元素是 undefined null,它将被转换为空字符串

二:String.prototype.split()

 split() 方法使用指定的分隔符字符串将一个String对象分割成子字符串数组,以一个指定的分割字串来决定每个拆分的位置。

const str = 'The quick brown fox jumps over the lazy dog.';

const words = str.split(' ');
console.log(words[3]);
// Expected output: "fox"

const chars = str.split('');
console.log(chars[8]);
// Expected output: "k"

const strCopy = str.split();
console.log(strCopy);
// Expected output: Array ["The quick brown fox jumps over the lazy dog."]
  • 如果在 str 中省略分隔符,则返回的数组包含一个由整个字符串组成的元素
  • 如果分隔符为空字符串,则将 str 原字符串中每个字符的数组形式返回

注意:如果使用空字符串 (“) 作为分隔符,则字符串不是在每个用户感知的字符 (图形素集群) 之间,也不是在每个 Unicode 字符 (代码点) 之间,而是在每个 UTF-16 代码单元之间。这会摧毁代理对。

三:Array/String.prototype.slice()

slice()方法数组和字符串均有,使用方法大同小异,下面就以数组为例介绍

slice()方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变

const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];

console.log(animals.slice(2));
// Expected output: Array ["camel", "duck", "elephant"]

console.log(animals.slice(-2));
// Expected output: Array ["duck", "elephant"]

console.log(animals.slice(2, 4));
// Expected output: Array ["camel", "duck"]

console.log(animals.slice(2, -1));
// Expected output: Array ["camel", "duck"]

console.log(animals.slice());
// Expected output: Array ["ant", "bison", "camel", "duck", "elephant"]

相关文章:

  • 【开发环境】JRE 裁剪 ① ( 裁剪 bin 目录下的 dll 动态库文件 )
  • TypeScript 数据模型层编程的最佳实践
  • cf Educational Codeforces Round 134 D. Maximum AND
  • python 中单下划线和双下划线的区别
  • GIT ---- GitHub配置SSH Key的完整步骤
  • 【OpenGL学习】Shader和Shader类的抽象
  • 两大技巧教你轻松应对IB数学
  • 用SpectorJS调试WebGL应用
  • 【Netty】读书笔记 - 跟闪电侠学netty
  • OpenCV4.6 VS 4.7 QRCode解码功能效果对比
  • 基于Java+SpringBoot+Vue求职招聘系统设计与实现
  • 【2023】华为OD机试真题Java-题目0195-最小施肥机能效
  • Redis 持久化详解
  • 快解析远程访问解决方案——安全稳定,部署简单
  • 三万秃发人群撑起一个IPO,大麦植发能成功上市吗?
  • Vue模板语法(一)
  • 鉴源论坛 · 观通丨轨交系统安全性设计
  • [ECE]模拟试题-5
  • ②【Spring】一文精通:IOC - 基于XML方式管理Bean
  • Android Studio 阅读 frameworks/base 下的代码