Как удалить все вхождения строки в Javascript - PullRequest
1 голос
/ 06 мая 2020

Я использую JSON.stringify для преобразования объекта в строку следующим образом:

JSON.stringify(obj).replace(/[{}]/g, '').slice(1, -1)

Я получаю результат ниже:

"null,null,"Heading":"Heading1""

Я хочу удалить все вхождения нуля из указанная выше строка, для которой я использую replace

JSON.stringify(obj).replace(/[{}]/g, '').slice(1, -1).replace('null,', '')

Но она удаляет только первое вхождение null string

 "null,"Heading":"Heading1""

Желаемый результат:

"Heading":"Heading1""

Ответы [ 2 ]

3 голосов
/ 06 мая 2020

Как говорится в комментариях, может быть лучшим способом для этого - избавиться от элемента null в первую очередь , поэтому, если вы хотите это сделать, вы должны выполнить итерацию по своему объекту, затем проверьте для null шт.

По этой причине это может пригодиться:

Object.keys(obj).forEach((key) => (obj[key] == null) && delete obj[key]);

В противном случае вам следует рассмотреть возможность использования глобального флага (/g) в вашем регулярном выражении, чтобы удалить все null вхождения.

Вы можете добиться этого примерно так:

.replace(/null,/g, '')
0 голосов
/ 06 мая 2020

Метод .replace () заменяет только первое вхождение. Выполните глобальную замену как

.replace(/null,/g, '')

Надеюсь, это поможет!

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