使用 JavaScript 在特定索引处拆分字符串

要在特定索引处拆分字符串,请使用 slice 方法获取字符串的两个部分,例如 str.slice(0, index) 返回字符串的一部分,但不包括提供的索引,而 str.slice(index) 返回字符串的其余部分。

function split(str, index) {
  const result = [str.slice(0, index), str.slice(index)];

  return result;
}

const [first, second] = split('abcd', 2);

console.log(first); // 👉️ "ab"
console.log(second); // 👉️ "cd"

我们创建了一个可重用的函数,它将一个字符串和一个索引作为参数。

我们使用 String.slice 方法根据提供的索引拆分字符串。

我们使用以下参数调用该方法:

  • start 索引 – 要包含在字符串中的第一个字符的索引
  • stop 索引 – 上升到但不包括该索引

第一次调用 slice 方法获取子字符串,但不包括提供的索引。

console.log('abcd'.slice(0, 2)); // 👉️ "ab"

对 slice 方法的第二次调用获取字符串的剩余部分。

console.log('abcd'.slice(2)); //  👉️ "cd"

当传递单个参数时,slice 方法从提供的索引开始,包括字符到字符串的末尾。

我们的 split 函数返回一个包含两个子字符串的数组。

function split(str, index) {
  const result = [str.slice(0, index), str.slice(index)];

  return result;
}

const arr = split('abcd', 2);
console.log(arr); // 👉️ ['ab', 'cd']

我们可以使用解构赋值将子字符串赋值给变量。

function split(str, index) {
  const result = [str.slice(0, index), str.slice(index)];

  return result;
}

// 👇️ destructure array elements and assign to variables
const [first, second] = split('abcd', 2);

console.log(first); // 👉️ "ab"
console.log(second); // 👉️ "cd"

解构赋值语法使我们能够在一条语句中将数组中的值赋给第一个和第二个变量。

如果我们只需执行一次,则无需创建可重用函数。

const str = 'abcd';
const index = 2;

const first = str.slice(0, index);
const second = str.slice(index);

console.log(first); // 👉️ "ab"
console.log(second); // 👉️ "cd"

代码示例实现了相同的结果,但更加硬编码和简化。

如果我们只需要根据提供的索引拆分字符串一次或两次,最好避免过早的抽象。