我试图从我的数组内容中删除所有空格。
这是我的数组
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, '')')
我错过了什么?
答案 0 :(得分:5)
您可以使用map制作新阵列。
在地图功能中,您可以在值上使用正则表达式。
array = $.map(array, function(value){
return value.replace(/ /g, '');
});
array = array.map(function(value){
return value.replace(/ /g, '');
});
for(var i=0; i<array.length; i++){
array[i] = array[i].replace(/ /g, '');
};
array = array.join('$').replace(/ /g, '').split('$');
答案 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>