jQuery剥离数组中的空格

时间:2015-02-05 21:19:03

标签: javascript jquery

我试图从我的数组内容中删除所有空格。

这是我的数组

var array = ["option 1", "option 2", "option 3"]

我尝试使用此处的答案:how do I strip white space when grabbing text with jQuery?

这就是我试图使用的jQuery。

$(array1).each(function(entry) {
  $(this).replace(/\s+/g, '');
  console.log(entry);
});

但它会抛出TypeError: undefined is not a function (evaluating 'entry.replace(/\s+/g, '')')

我错过了什么?

5 个答案:

答案 0 :(得分:5)

您可以使用map制作新阵列。

在地图功能中,您可以在值上使用正则表达式。


的jQuery

array = $.map(array, function(value){
  return value.replace(/ /g, '');
});

Fiddle;


香草JS版

array = array.map(function(value){
  return value.replace(/ /g, '');
});

Fiddle


旧IE vanilla JS

for(var i=0; i<array.length; i++){
  array[i] = array[i].replace(/ /g, '');
};

Fiddle


无循环通用方法(可能与字符冲突)

array = array.join('$').replace(/ /g, '').split('$');

Fiddle

答案 1 :(得分:1)

这里不需要使用jQuery,只需使用简单的数组方法,如map或简单的for循环:

var array1 = ["option 1", "option 2", "option 3"].map(function(el) {
    return el.replace(/\s*/g, '')
});

document.write(array1);

答案 2 :(得分:0)

$(this)不是你想要的,你想要entry,那就是你的字符串

entry = entry.replace(/\s+/g, '');

实际上你的字符串是第二个参数。因此,您需要将功能更改为function(key, entry)

这就是为什么它不起作用,但我建议在这里使用其他一些解决方案。 $.each不是最佳选择,您希望map

答案 3 :(得分:0)

这个简单的for循环遍历数组项并删除任何不需要jQuery或正则表达式的空格。

var arr = ["option 1", "option 2", "option 3"];

for (var i = 0; i < arr.length; i++) {
    alert(arr[i].replace(' ', ''));
}

答案 4 :(得分:0)

看看'每个'在jQuery中是如何工作的,它不是你想的那么。可以通过注意回调的第一个参数是数组的索引来修复此代码,因此您可以像这样调整代码。

var array1 = ["option 1", "option 2", "option 3"]

$(array1).each(function(entry, value) {
  array1[entry] = value.replace(/\s+/g, '');
  console.log(array1[entry]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>