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

时间:2019-03-06 19:33:24

标签: 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);

我想知道哪种方法更好,还是最好?有批处理功能吗?

1 个答案:

答案 0 :(得分:2)

两个建议:

  • 在任何甚至模糊不清的浏览器上,我都将使用replace而不是trim,它会从字符串的开头和结尾删除空格。 trim是在ES5(2009)中添加的。
  • 除非数组中包含数百万个条目,否则我可能会使用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是循环的本地代码。现代引擎会进行优化那么好,他们并不总是那么早。)