Заменить строку в массиве javascript

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

Ответы

Ответ 1

Да.

for(var i=0; i < arr.length; i++) {
 arr[i] = arr[i].replace(/,/g, '');
}

Ответ 2

Лучший способ в настоящее время - использовать функцию 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;
    };
}

Ответ 3

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

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

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

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

Ответ 4

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

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

Ответ 5

Вы также можете сделать в строке в более коротком синтаксисе

array = array.map(x => x.replace(/,/g,""));

Ответ 6

Вы можете использовать array.map или forEach. Согласно нашему сценарию, array.map создает или получает новый массив. forEach позволяет вам манипулировать данными в уже существующем массиве. Сегодня я использовал это для меня.

document.addEventListener("DOMContentLoaded", () => {
    // products service
    const products = new Products();
    // get producsts from API.
    products
    .getProducts()
    .then(products => {
        /*
        raw output of data "SHEPPERD'S SALLAD" to "SHEPPERDS SALLAD"
        so I want to get an output like this and just want the object 
        to affect the title proporties. other features should stay 
        the same as it came from the db.
        */ 
        products.forEach(product => product.title = product.title.replace(/'/g,''));
        Storage.saveProducts(products);
    });
});

Ответ 7

Учитывая требуемую строку в переменной s: -

var result = s.replace(/,/g, '');