将单个变量分解为多个

时间:2018-05-07 18:05:15

标签: javascript arrays variables

您好,

我在javascript中有一个名为list的变量,它产生了这个:

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 :(得分:0)

您可以使用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);