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

问题描述 投票:0回答:1

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

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

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);

我想知道什么是更好的方式,还是这些是最好的?有批处理功能吗?

javascript replace
1个回答
2
投票

两个建议:

  • 而不是replace,在任何甚至模糊的现代浏览器上我都使用trim,它从字符串的开头和结尾删除空格。在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是循环的本地。现代引擎现在很好地优化了它们,而且它们并不总是在早期。)

© www.soinside.com 2019 - 2024. All rights reserved.