Разбейте одну переменную на множество - PullRequest
0 голосов
/ 07 мая 2018

Привет,

У меня есть переменная в javascript, названная списками, которая производит это:

Gasp for surprise    Giggle    Say hello    Come on    Kick somebody out    Kiss somebody    Scream    Yawn for sleepy    Snoring

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

var sounds = {
  "gasp" : {
    url : "gasp.mp3",
  },
  "giggle" : {
    url : "giggle.mp3",
  },
[...]
  "scream" : {
    url : "scream.mp3",
  },
  "snoring" : {
    url : "snoring.mp3",
  }
};

Как мне этого добиться?

Спасибо.

1 Ответ

0 голосов
/ 08 мая 2018

Вы можете использовать split, чтобы разбить строку на массив, а затем reduce, чтобы преобразовать массив в объект:

const input = 'Gasp for surprise    Giggle    Say hello    Come on    Kick somebody out    Kiss somebody    Scream    Yawn for sleepy    Snoring';
const sounds = input.split('    ')
  .reduce((accum, str) => {
    const name = str.match(/^([^ ]+)/)[0];
    accum[name] = { url: name + '.mp3' };
    return accum;
  }, {});
console.log(sounds);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...