javascript - 这个 replaceAt 函数是如何工作的?

标签 javascript string function methods substring

您能解释一下这段代码是如何工作的吗?

String.prototype.replaceAt = function(index, character) {
    return this.substr(0, index) + character + this.substr(index+character.length);
};


function titleCase(str) {
    var newTitle = str.split(' ');
    var updatedTitle = [];
    for (var st in newTitle) {
        updatedTitle[st] = newTitle[st].toLowerCase().replaceAt(0, newTitle[st].charAt(0).toUpperCase());
    }
    return updatedTitle.join(' ');
}

titleCase("I'm a little tea pot");

具体来说,传递给 replaceAt 的到底是什么(我知道它传递了一个索引和一个转换为小写的字符),但是 replaceAt 对它有什么作用?

所以,在循环的第一次迭代中,它通过了 replaceAt(0, i) 对吗?那么 replaceAt 有什么用呢?我只是不明白这一行:

this.substr(0, index) + character + this.substr(index+character.length)

我已经读过这个:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr .我来这里是因为我不明白那个 return 语句以及它到底在做什么。

最佳答案

假设您执行 "thisisatest".replaceAt(3, "h")

然后...

  1. this.substr(0, index) 返回 "thi" :即 "thisisatest"
  2. 的前 3 个字符
  3. 字符 返回"h"
  4. this.substr(index+character.length) 返回 "isatest" :即 "thisisatest" 的所有字符,从位置开始4

所以,当你结合这个时,你会得到 "thihisatest"

关于javascript - 这个 replaceAt 函数是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45148658/

相关文章:

R:使省略号中的命名项在(可能是嵌套的)执行环境中可用

java - 从字符串中获取所有字符及其编号

python - 正则表达式——如何允许不相邻的替代项?

function - 方案中的简单高阶函数

jquery - 使用 html jQuery 保存到本地存储

PHP:使用一个数组中的单个值作为另一个数组的键?

javascript - 使用json上传导致缺少模板错误

javascript - 将 Firebase 对象转换为数组

javascript - AJAX 回调中 anchor 标记的奇怪解析

javascript - 将选项作为对象数组进行多项选择