JavaScript拆分字符串示例–如何在JS中将字符串拆分为数组

本文作者:大卫

字符串是表示字符序列的数据结构,而数组是包含多个值的数据结构。

而且您知道吗–使用该split方法可以将一个字符串分解为多个字符串组成的数组。让我们通过一些示例来了解它是如何工作的。

TL; DR(太长不想读~XD)

如果您只想要代码,请执行以下操作:

const publisher = 'free code camp'
publisher.split(' ') // [ 'free', 'code', 'camp' ]

句法

根据MDN,分割字符串所需的语法为str.split([separator[, limit]])。如果我们将其应用于上述示例:

  • str 是 publisher
  • separator 是 ' '
  • 没有 limit

什么时候需要分割字符串?

示例1:获取字符串的一部分

这是一个常见示例,涉及从作为基于令牌的身份验证系统一部分的auth头获取令牌。

如果这对您没有任何意义,那就没关系。对于以下示例,您需要知道的是存在一个带有值的字符串bearer token,但只token需要一个字符串(因为这是标识用户的部分):

const authHeader = 'bearer token'
const split = authHeader.split(' ') // (1) [ 'bearer', 'token' ]
const token = split[1] // (2) token

这是上面的代码中发生的事情:

  1. 字符串' '以分隔符分隔
  2. 访问数组中的第二个条目

示例2:将数组方法应用于字符串

通常你给出的输入是一个字符串,但要阵列的方法适用于它(例如mapfilterreduce)。

例如,假设您得到了一个莫尔斯电码字符串,并且想查看它的英文含义:

const morse = '-.-. --- -.. .'
// (1)
const morseToChar = {
  '-.-.': 'c',
  '-..': 'd',
  '.': 'e',
  '---': 'o',
}

const morseArray = morse.split(' ') // (2) [ '-.-.', '---', '-..', '.' ]
const textArray = morseArray.map((char) => morseToChar[char]) // (3) [ 'c', 'o', 'd', 'e' ]
const text = textArray.join(") // (4)

这是上面的代码中发生的事情:

  1. 创建对象文字以将摩尔斯字符映射到英文字母
  2. 摩尔斯电码以a' '分隔为一个数组。(如果不' '带参数,您将最终得到一个数组,其中每个.和都有单独的条目-。)
  3. 莫尔斯电码数组被映射/转换为文本数组
  4. 从数组创建一个字符串''作为分隔符。(不''作为参数,输出为c,o,d,e。)

如何增加分割上限

根据MDN,也可以将alimit作为参数传递给split。我从来不需要这样做,但是这里是您如何应用它的方法:

const publisher = 'free code camp'
publisher.split(' ', 1) // [ 'free' ]

在上面的示例中,该数组仅限于一个条目。没有它,数组的值将是[ 'free', 'code', 'camp' ]

 

点击 阅读原文

本文来自投稿,不代表微擎百科立场,如若转载,请注明出处:https://www.w7.wiki/develop/4974.html

发表评论

登录后才能评论