Javascript 在每个帮助中,我要修剪()数组中的所有字符串
我将一个字符串拆分成一个数组,然后我想删除每个元素周围的空白。我正在使用jQuery。我可以用2个阵列成功地完成这项工作,但我知道这是不正确的。如何在数组中循环并修剪每个元素,使元素保持更改。谢谢你的提示。下面是我使用两个数组的工作代码。请告诉我做这件事的正确方法Javascript 在每个帮助中,我要修剪()数组中的所有字符串,javascript,jquery,arrays,Javascript,Jquery,Arrays,我将一个字符串拆分成一个数组,然后我想删除每个元素周围的空白。我正在使用jQuery。我可以用2个阵列成功地完成这项工作,但我知道这是不正确的。如何在数组中循环并修剪每个元素,使元素保持更改。谢谢你的提示。下面是我使用两个数组的工作代码。请告诉我做这件事的正确方法 var arVeh = vehicleText.split("|"); var cleanArry = new Array(); $.each(arVeh, function (idx, val) {
var arVeh = vehicleText.split("|");
var cleanArry = new Array();
$.each(arVeh, function (idx, val) {
cleanArry.push($.trim(this));
});
干杯,
~ck在圣地亚哥
//a simple function
function trimArray(dirtyArray){
$.map(dirtyArray.split("|"), function(idx, val){
return $.trim(this);
});
}
trimArray(vehicleArray);
我们应该这样做
或者你可以使用javascript的强大功能,并使用它。我对使用任何对象的.prototype
还是有点陌生。。。因此,这并不能保证有效(但肯定可以做到)
您甚至不需要idx或val参数。这似乎适用于: 编辑:现在我已经了解了您真正想要的东西,请尝试使用地图:
var cleanVehicles = $.map(vehicleText.split("|"), $.trim);
你能不能不这样做
var arVeh = vehicleText.split("|");
$.each(arVeh, function (idx, val) {
arVeh[idx] = $.trim(this);
});
我建议不要将jQuery的开销用于简单的for循环
var arVeh = vehicleText.split("|");
for (var i = 0, l = arVeh.length; i < l; ++i) {
arVeh[i] = $.trim(arVeh[i]);
});
不在javascript代码中“创建”数组(但会在内存中创建数组)
这将修剪值并将其设置为索引项。您需要以下两个jQuery函数: 1.)通过能够编辑项的数组元素进行迭代: 2.)删除字符串开头和结尾的空格: 这样使用它们:
array = $.map(array, function(value) { return value.trim();});
检查此JSFIDLE:
您不必使用JQuery。这是你的香草解决方案:
testArray.map(Function.prototype.call、String.prototype.trim)代码>
Function.prototype.call对testArray的每个元素调用trim()。就这么简单 您想通过不声明第二个数组来更有效地执行此操作吗?是的,我只想使用一个数组,arVehYes,他想找到一种方法来轻松地修剪数组的值。@darek,不,请看他上面的评论,他的代码正在运行,但他想更有效地执行此操作,我不是说您的代码不好,确实是很好的代码是的,我在jQuery网站上看到了这一点,它的工作原理是var foo=[1,2,3];$。每个(foo,函数(index,val){foo[index]=val+10;})@州长-我认为你错了。。。也许OP应该说明,根据您使用阵列原型的位置,它可能是不好的juju。我在Firefox扩展中的数组上使用了一个类似的原型(unique),出于某种原因,每当鼠标停留在任何东西上时,都会弹出一个空白的工具提示。Firefox不喜欢在Array中添加原型。如果你仔细看看他的问题,他说他已经知道如何做到这一点。他想得到一个数组,然后简单地去掉空白,不创建另一个数组。在我发布后看到了这一点,我已经更新了我的答案以使用map。但是这不是太简单,太有意义了吗?正如我在@Jerry的答案中所说的-这不是太简单,太有意义了吗?这显然是最好的答案。人们总是沉迷于使用jQuery,忘记了jQuery只是javascript而已。我只是好奇。。。你有没有关于每个美元的实际开销的数字?为了语法简洁,我更喜欢使用$.each,这对我来说比(可能)中等性能更重要。但是我想当你在其中添加.split()时,它会弄脏干净的。每个+1=)@Derek-这取决于数组的大小。以下是一个简单的谷歌搜索所提供的:
var arVeh = vehicleText.split("|");
for (var i = 0, l = arVeh.length; i < l; ++i) {
arVeh[i] = $.trim(arVeh[i]);
});
var arVeh = $.trim(vehicleText).split(/\s*\|\s*/);
vehicles = $.map(vehicleText.split("|"), function(e,i) { return $.trim(e) });
var my_arr = [' cats', 'dogs ', ' what '];
$.each(my_arr, function (id, val) {
my_arr[id] = $.trim(val);
});
console.log(my_arr);
array = $.map(array, function(value) { return value.trim();});