it-roy-ru.com

jQuery. каждая помощь, я хочу обрезать () все строки в массиве

Я разбиваю строку на массив, затем хочу удалить пробел вокруг каждого элемента. Я использую JQuery. Я могу сделать это успешно с 2 массивами, но я знаю, что это не правильно. Как зациклить массив и обрезать каждый элемент, чтобы элементы сохраняли это изменение. Спасибо за любые советы. Вот мой рабочий код с использованием двух массивов. Пожалуйста, покажи мне правильный способ сделать это.

var arVeh = vehicleText.split("|");
    var cleanArry = new Array();
    $.each(arVeh, function (idx, val) {

        cleanArry.Push($.trim(this));

    });

Приветствия, ~ CK в Сан-Диего

18
Hcabnettek

Вам даже не нужны параметры idx или val. Похоже, это работает на jsFiddle :

var cleanVehicles = [];

$.each(vehicleText.split("|"), function(){
    cleanVehicles.Push($.trim(this));
});

EDIT: Теперь, когда я увидел то, что вам действительно нужно, попробуйте использовать карту:

var cleanVehicles = $.map(vehicleText.split("|"), $.trim);
51
Chris Doggett

Я собираюсь предложить не использовать издержки jQuery для простого цикла for ...

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*/);
8
nickf

Вам не нужно использовать JQuery. Вот ваше ванильное решение:

testArray.map(Function.prototype.call, String.prototype.trim);

Функция.prototype.call вызывает trim () для каждого из элементов testArray. Так просто!

1
Satya Sampathirao
var my_arr = ['    cats', 'dogs    ', '  what  '];
$.each(my_arr, function (id, val) {
    my_arr[id] = $.trim(val);
});
console.log(my_arr);

Это обрезает значение и устанавливает его для индексированного элемента.

1
John Giotta
//a simple function
function trimArray(dirtyArray){
  $.map(dirtyArray.split("|"), function(idx, val){
    return $.trim(this);
  });
}

trimArray(vehicleArray);

должен сделать трюк

Или вы можете использовать некоторые из удивительных возможностей javascript и использовать array.prototype . Я все еще немного новичок в использовании .prototype любого объекта ... так что это не гарантированно работает (но это, безусловно, может быть сделано).

Array.prototype.trim = function (){
  $.map(dirtyArray.split("|"), function(idx, val){
    return $.trim(this);
  });
}

someArray.trim()
0
Derek Adair

Не могли бы вы просто сделать это?

 var arVeh = vehicleText.split("|");

$.each(arVeh, function (idx, val) {

    arVeh[idx] = $.trim(this);

});
0
Jerryf

Без «создания» массива в коде JavaScript (массив все же будет создан в памяти)

vehicles = $.map(vehicleText.split("|"), function(e,i) { return $.trim(e) });
0
Jerome WAGNER