Могу ли я использовать модуль с Array.prototype.map для вставки новой строки через каждые 3 знака? - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь выучить es6 и поиграться с API покемонов.myRoute = 'https://pokeapi.co/api/v2/ability/144/';

const arrObservable = this._http.get(newurl);
 arrObservable.subscribe( 
(data) => {
 const pokeString = data.pokemon.map( ( { pokemon }: obj ) => pokemon.name );
console.log(`There are ${data.pokemon.length} pokemon with the ${data.name} ability:  ${pokeString}`);

})

вывод:

Имеется 19 покемонов со способностью регенератора: медленный удар, медленный удар, тангела, замедление, Корсола, Хо-о, тангоут, Одино, Солоз, дуосион, Реуникус, Фоонгус, Амонгус, Аломомола, Миэнфоо, Миэншао, Мареани, Токсапекс, Торнадус-Териан

Я получаюправильные результаты , в консоли это выглядит немного странно, поэтому мне интересно, есть ли способ добавить '\ n' каждые несколько строк, все еще используя .map ()функционировать?

1 Ответ

0 голосов
/ 11 октября 2018

После того как вы использовали .map, объедините их запятыми, а затем используйте .replace в полученной строке, чтобы заменить вхождения 3 слова, разделенных запятыми, этими 3 словами и запятыми плюс символ новой строки.Таким образом, ваша pokeString будет фактически строкой:

const pokeString = data.pokemon
  .map( ( { pokemon }: obj ) => pokemon.name )
  .join(',')
  .replace(/[^,]+,[^,]+,[^,]+,/g, '$&\n');

const names = ['slowpoke','slowbro','tangela','slowking','corsola','ho-oh','tangrowth','audino','solosis','duosion','reuniclus','foongus','amoonguss','alomomola','mienfoo','mienshao','mareanie','toxapex','tornadus-therian'];

const pokeString = names
  .join(',')
  .replace(/[^,]+,[^,]+,[^,]+,/g, '$&\n');
  
console.log(pokeString);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...