Заменить строку в массиве JavaScript - PullRequest
17 голосов
/ 05 июня 2009

У меня есть массив в JavaScript. В этом массиве есть строки, содержащие запятые (","). Я хочу, чтобы все запятые были удалены из этого массива. Можно ли это сделать?

Ответы [ 5 ]

43 голосов
/ 05 июня 2009

Да.

for(var i=0; i < arr.length; i++) {
 arr[i] = arr[i].replace(/,/g, '');
}
24 голосов
/ 06 марта 2014

Лучший способ в настоящее время - использовать функцию map() следующим образом:

var resultArr = arr.map(function(x){return x.replace(/,/g, '');});

это стандарт ECMA-262. Если вам нужна более ранняя версия, вы можете добавить этот фрагмент кода в свой проект:

if (!Array.prototype.map)
{
    Array.prototype.map = function(fun /*, thisp*/)
    {
        var len = this.length;
        if (typeof fun != "function")
          throw new TypeError();

        var res = new Array(len);
        var thisp = arguments[1];
        for (var i = 0; i < len; i++)
        {
            if (i in this)
                res[i] = fun.call(thisp, this[i], i, this);
        }

        return res;
    };
}
6 голосов
/ 02 апреля 2014

Вы можете просто сделать:

array = ["erf,","erfeer,rf","erfer"];
array = array.map(function(x){ return x.replace(/,/g,"") });

Теперь массив становится:

["erf", "erfeerrf", "erfer"]

0 голосов
/ 05 июня 2009

С учетом требуемой строки в переменной s: -

var result = s.replace(/,/g, '');
0 голосов
/ 05 июня 2009

Конечно - просто перебирайте массив и выполняйте стандартное удаление на каждой итерации.

Или, если позволяет природа вашего массива, вы можете сначала преобразовать массив в строку, вывести запятые, а затем преобразовать обратно в массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...