удалить только одну черточку из списка javascript

#javascript #jquery

#javascript #jquery

Вопрос:

Я хотел бы заменить дефис, который был бы отделен от текста. Как прикреплено :

  1. GARE CENTRALE — HERRMANN-DEBROUX
  2. GARE CENTRALE — MUSEE DU TRAM
  3. СТАНЦИЯ МЕТРО ЭТТЕРБЕК-ИКСЕЛЬ-БОРДЕТ Я хотел бы иметь такой список в списке :
  4. [GARE CENTRALE], [HERRMANN-DEBROUX]
  5. GARE CENTRALE], [MUSEE DU TRAM]
  6. [HOPITAL ETTERBEEK-IXELLES], [BORDET STATION]

Я пытался использовать : list.replace(/-/,''); Но это работает только с первой и двумя строками, но не работает с последней, я не хочу делать это вручную, потому что там около 100 строк, и каждая строка отличается.

Спасибо: D

Комментарии:

1. Java != Javascript

Ответ №1:

Вы можете сделать что-то подобное, если хотите получить массив в результате.

 var array = [];
var texts = [
  'HOPITAL ETTERBEEK-IXELLES - BORDET STATION',
  'GARE CENTRALE - MUSEE DU TRAM',
  'HOPITAL ETTERBEEK-IXELLES - BORDET STATION'
];

texts.forEach((text) =>{
  array.push(text.split(' - '));
});
console.log(array);  

Комментарии:

1. Их никак не проще, чем .replace() ?

2. @forcela Что такого сложного в этом коде. Для меня это выглядит довольно прямолинейно. Вы также можете легко переписать его как упрощенный oneliner texts.forEach(text => array.push(text.split(' - '))); . Я не понимаю, как replace() решить ваши проблемы, но если это просто добавит пробелы в регулярное выражение?

3. @forcela Вы хотите получить список в результате, но replace() метод заменяет только заданные строки в строке. Так split() я думаю, что это самый простой метод 🙂

4. Да, это то, что я не описал подробно, я заменяю строку в строке, но в массиве, подобном var ligneNom = lines[i].split(',')[longNameLoca]; . Но большое спасибо за вашу помощь 🙂