Javascript - 如何替换整个数组中的空格

标签 javascript replace

我有一个小字符串数组,但我从程序外部接收到该数据,所以我不知道数据是如何格式化的。最具体地说,我遇到了很多情况,每个字符串之前和之后都有无关的空格。

问题是,我有一个很大的数组。虽然我可以做这样的事情:

for (var z = 0; z < myArray.length; z++) {
  myArray[z] = myArray[z].replace(/(^\s+|\s+$)/g,'');
}

myArray.forEach(function(part, index) {
  this[index] = this[index].replace(/(^\s+|\s+$)/g,'');
}, myArray);

我想知道什么是更好的方法,或者这些是最好的方法吗?有没有一个批处理函数可以做到这一点?

最佳答案

两个建议:

  • 在任何现代浏览器上,我都会使用 trim,而不是 replace,它会删除字符串开头和结尾的空格。 ES5 (2009) 中添加了 trim
  • 除非数组有数百万个条目,否则我可能会使用 map,但您的 for 循环就可以了。 map 根据回调函数的结果创建一个新数组。

以下是这两个建议的结合:

myArray = myArray.map(str => str.trim());
// or ES5:
myArray = myArray.map(function(str) { return str.trim(); });

但是,如果您不想创建新数组,那么您的 fortrim 就可以了,尽管您可以缓存 myArray.length 以避免在每次迭代时重新检索它:

for (var i = 0, len = myArray.length; i < len; ++i) {
    myArray[i] = myArray[i].trim();
}

(如果您的目标是现代环境,我可能会使用 let 而不是 var,所以 ilen 是本地循环。现代引擎现在可以很好地优化这一点,而早期引擎并不总是这样。)

关于Javascript - 如何替换整个数组中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55030906/

相关文章:

javascript - 如何删除使用jquery运行时创建的文本框

javascript - Angular 验证: Restrict server request if user enters invalid email or password

python - 正则表达式替换 Python 中奇数重复出现的字符

MYSQL 插入、更新、删除

bash - sed:替换主机文件中的 ip,使用主机名作为模式

Javascript ES6 解构 - 标识符 'location' 已被声明

javascript - Vue.js - 当 'copying it' 到另一个数据属性时不要绑定(bind)对象

javascript - 处理绝对位置元素上的过渡插入其他元素

css - 更正整个应用程序的旧路径

java - 无法从字符串中删除单引号?