字符串有拼接方法吗?

2023-12-24

JavaScriptsplice仅适用于数组。对于字符串有类似的方法吗?或者我应该创建自己的自定义函数?

The substr(), and substring()方法只会返回提取的字符串,不会修改原始字符串。我想要做的是从字符串中删除某些部分并将更改应用于原始字符串。此外,该方法replace()在我的情况下不起作用,因为我想删除从索引开始到其他索引结束的部分,就像我可以用splice()方法。我尝试将字符串转换为数组,但这不是一个巧妙的方法。


将字符串切片两次会更快,如下所示:

function spliceSlice(str, index, count, add) {
  // We cannot pass negative indexes directly to the 2nd slicing operation.
  if (index < 0) {
    index = str.length + index;
    if (index < 0) {
      index = 0;
    }
  }

  return str.slice(0, index) + (add || "") + str.slice(index + count);
}

而不是使用先拆分后连接(Kumar Harsh 的方法),如下所示:

function spliceSplit(str, index, count, add) {
  var ar = str.split('');
  ar.splice(index, count, add);
  return ar.join('');
}

这是一个jsperf http://jsperf.com/split-or-slice-for-string-splice/2比较了这两种方法和其他几种方法。 (jsperf 已经关闭几个月了。请在评论中提出替代方案。)

虽然上面的代码实现了重现的函数general的功能splice,针对提问者提出的情况优化代码(即不向修改后的字符串添加任何内容)不会改变各种方法的相对性能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符串有拼接方法吗? 的相关文章

随机推荐