Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么';t trim()使用$。each删除字符串数组中的空白_Javascript_Jquery - Fatal编程技术网

Javascript 为什么';t trim()使用$。each删除字符串数组中的空白

Javascript 为什么';t trim()使用$。each删除字符串数组中的空白,javascript,jquery,Javascript,Jquery,我想使用.split()从逗号分隔的字符串生成一个数组,但我需要去掉空白 var a = "one, two".split(","); a ==> ["one", " two"] a[1].trim() ==> "two" $.each(a, function(i,v){v.trim()}) ==> ["one", " two"] 从数组中的第二个字符串中裁剪空白,我缺少什么?有没有更好的方法从逗号分隔的字符串中裁剪空白?用正则表达式拆分: var a = "on

我想使用
.split()
从逗号分隔的字符串生成一个数组,但我需要去掉空白

var a = "one, two".split(",");

a  ==>  ["one", " two"]

a[1].trim() ==> "two"

$.each(a, function(i,v){v.trim()})  ==> ["one", " two"]

从数组中的第二个字符串中裁剪空白,我缺少什么?有没有更好的方法从逗号分隔的字符串中裁剪空白?

用正则表达式拆分:

var a = "one,   two,  three  ,  four".split(/\s*,\s*/);

console.log(a); //=> ["one", "two", "three", "four"]
如果开头或结尾有空格,可以先使用
trim

a = " one,   two,  three  ,  four  ".trim().split(/\s*,\s*/);

您的问题是您正在检索值
v.trim()
,但对其不做任何操作。替换此部分:

$.each(a, function(i,v){v.trim()})
为此:

for(var i=0; i<a.length; i++) {
    a[i] = a[i].trim();
}

for(var i=0;i
trim()
将返回一个经过修剪的字符串,但您的原始字符串不会被修改,因此您必须对其进行赋值。

您的内部函数实际上不会返回值。正如其他人所提到的,
trim
将返回字符串的一个副本,并删除前导和尾随空格。此外,
每个
都不使用函数的返回值ns,所以你不能用它来替换元素。你需要

$.map(a, function(v){return v.trim();});

要使其起作用。(分配给v将不起作用,因为v只是一个局部变量。)

如果仍要使用jquery的每个变量,请按以下方式执行:

$.each(a,function(i,v){
  a[i] = v.trim();
}

不应该这样。
v
是内部函数的局部函数。分配给它没有任何作用。@JacobAbrahams是正确的。
$。每个(a,函数(i,v){v=v.trim()})==>[“一”,“二”]
@JacobAbrahams我对它进行了修改。很好,我添加了一个简明的jquery解决方案,以防您好奇。根据@ConnerDouglass的建议:
var b=[];for(var i=0;我支持所有输入!鉴于许多排名靠前的用户提交答案只是为了在几秒钟后删除它们,我觉得自己没有最初发布问题时那么愚蠢。是的。这是最简洁的答案,感谢您的解释。