MST

星途 面试题库

面试题:JavaScript字符串模拟数组操作之元素删除

假设我们把JavaScript字符串看作类似数组的结构,现在要实现一个函数,该函数能够删除字符串中指定位置的字符,就像从数组中删除元素一样。请编写这个函数,并考虑函数的边界条件,比如删除第一个字符、最后一个字符以及超出字符串长度的情况等,同时说明在实现过程中涉及到的JavaScript字符串和数组操作的原理。
36.3万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
function removeCharAt(str, index) {
    if (index < 0 || index >= str.length) {
        return str;
    }
    return str.slice(0, index) + str.slice(index + 1);
}

原理说明

  1. 字符串类似数组结构:JavaScript字符串可以通过索引访问单个字符,就像数组一样,例如str[0]可以获取字符串str的第一个字符。但字符串是不可变的,不能像数组那样直接修改其中的元素。
  2. slice方法slice方法用于提取字符串的某个部分并返回一个新字符串,不会修改原始字符串。str.slice(start, end)中,start是起始索引(包括),end是结束索引(不包括)。
  3. 删除第一个字符:当index为0时,str.slice(0, 0)返回空字符串,str.slice(1)返回从第二个字符开始到最后的字符串,两者拼接起来就实现了删除第一个字符。
  4. 删除最后一个字符:当indexstr.length - 1时,str.slice(0, str.length - 1)返回除最后一个字符外的所有字符,str.slice(str.length)返回空字符串,拼接后即删除了最后一个字符。
  5. 超出字符串长度:如果index小于0或大于等于字符串长度,直接返回原始字符串,因为无法删除不存在的字符。