Форматирование некоторых данных для передачи в виде строковых имен с несколькими переносами - PullRequest
1 голос
/ 17 октября 2019

У меня есть форматирование данных, которое мне нужно сделать, чтобы создать массив элементов, которые я могу передать. Вот что у меня есть:

// First I use `map` to create an array of just the job names:
jobList = dbJobs.map(job => job.attrs.name);

// Then I use `join()` to turn this into one long string
let jobListStr = jobList.join();

// Then I split this string into a new array, splitting on the comma
jobListArray = jobList.split(',');

// Then I need to add a hyphen between EACH of the words in each array element
// This is where the problem is. Here's what I tried:
for (let job of jobListArray) {
   job = job.replace(' ', '-').toLowerCase();
}

То, что это делает, это нижний регистр текста и успешно добавляет двоеточие между первым и вторым словом в каждом элементе. Но в более длинном элементе - например, Job Something Else это проблематично. Потому что, очевидно, мне нужен этот результат, где между каждым словом есть дефис:

job-something-else

Как мне разрешить этот последний аспект?

Чтобы уточнить, этокак выглядят мои исходные данные:

[
  'Job Example One',
  'Job Example Two',
  'Job Example Three',
  'Job Something Else',
  'Job Yet Another Example'
]

И что мне в конечном итоге нужно, так это:

[
  'job-example-one',
  'job-example-two',
  'job-example-three',
  'job-something-else',
  'job-yet-another-example'
]

Ответы [ 2 ]

3 голосов
/ 17 октября 2019

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

const dbJobs = [
  'Job Example One',
  'Job Example Two',
  'Job Example Three',
  'Job Something Else',
  'Job Yet Another Example'
]

const result = dbJobs.map(name => 
  name.toLowerCase() // convert the name to lower case
  .replace(/\s+/g, '-') // replace consecutive spaces with hyphens
)

console.log(result)
1 голос
/ 17 октября 2019

В Javascript функция замены работает иначе. Вам нужно будет попробовать следующее, чтобы заменить все пробелы на дефис:

for (let job of jobListArray) {
   job = job.split(' ').join('-').toLowerCase();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...