删除每个数组元素开头的空格

时间:2016-01-20 15:20:24

标签: javascript arrays

我必须split()将一个大字符串放入一个数组中,无论它工作的方式如何,我现在在每个元素之前留下一个空格。

例如:

var array = [" hello"," goodbye"," no"];

我怎样摆脱这个?

按要求拆分代码:

var depots = v.innerHTML.split(',');

4 个答案:

答案 0 :(得分:9)

您可以使用.map.trim



var array = [" hello"," goodbye"," no"];
array = array.map(function (el) {
  return el.trim();
});
console.log(array);




如果您使用ES2015,则可以使用箭头功能

缩短时间
array = array.map(el => el.trim());

Example

答案 1 :(得分:3)

使用Array#map()更改数组中的每个元素,以便在用分隔符拆分时从字符串本身中删除空格。

String#trim()String#split()一起使用RegEx

1 2 3  4 5  6
7 8 9  0 1  2

3 4 5  6 7  8
9 0 1  2 3  4 

5 6 7  8 9  0 

1 2 3  4 5  6

正则表达式str.trim().split(/\s*,\s*/) 将匹配任意数字(包括零)空格所包围的逗号。

现场演示:

\s*,\s*
var regex = /\s*,\s*/;

document.getElementById('textbox').addEventListener('keyup', function() {
  document.getElementById('result').innerHTML = JSON.stringify(this.value.trim().split(regex));
});

<input type="text" id="textbox" /> <pre id="result"></pre>将从字符串中移除前导空格和尾随空格,trim()将使用RegEx split将字符串除以逗号后跟任意数量的空格。

使用带有全局标记的String#match的否定RegEx也可以获得相同的结果。

,\s*
  

为什么不应该使用str.match(/[^,\s]+/g)

在这种情况下使用map()需要额外的开销。首先,map字符串split,然后遍历数组的每个元素,并使用,删除前导和尾随空格,然后更新数组。这比使用以上RegEx的trim慢一点。

答案 2 :(得分:0)

遍历每个数组元素并修剪它。如下所示

for (int i = 0; i < array.length; i++)
    trimmedArray[i] = array[i].trim();

答案 3 :(得分:-3)

您需要这两个jQuery函数:

1。)迭代数组元素,具有编辑项目的能力: http://api.jquery.com/jquery.map/

2。)从字符串的开头和结尾删除空格: http://api.jquery.com/jQuery.trim/

以这种方式使用它们:

array = $.map(array, function(value) { return value.trim();});

检查此JSFiddle: https://jsfiddle.net/L00eyL4x/49/