JavaScript中拆分单个变量内容生成指定结构对象的需求
解决方案
嘿,这需求很明确,我给你写个简洁的实现代码,一步搞定字符串拆分、提取首单词和生成目标对象的操作:
// 你的原始字符串变量 const lists = "Gasp for surprise Giggle Say hello Come on Kick somebody out Kiss somebody Scream Yawn for sleepy Snoring"; // 生成目标sounds对象 const sounds = lists // 按四空格拆分字符串为数组 .split(' ') // 过滤掉拆分后可能出现的空字符串(防止首尾或多空格导致的无效项) .filter(Boolean) // 遍历数组,逐步构建目标对象 .reduce((resultObj, currentItem) => { // 提取当前语句的首个单词,并转为小写 const firstWord = currentItem.split(' ')[0].toLowerCase(); // 给对象添加对应的键值对 resultObj[firstWord] = { url: `${firstWord}.mp3` }; return resultObj; }, {}); // 打印看看结果 console.log(sounds);
代码说明:
split(' '):用四空格作为分隔符,把原始字符串拆分成单个语句的数组;filter(Boolean):避免拆分后出现空字符串(比如如果原始字符串首尾有多余空格的话);reduce:用来遍历数组并逐步构建我们需要的对象,每一步提取当前语句的首个单词,转成小写作为键,对应的值是包含url属性的对象,url命名规则就是小写首单词加.mp3。
运行这段代码后,你得到的sounds对象就完全符合你要的结构啦!
内容的提问来源于stack exchange,提问作者Cain Nuke
相关产品推荐
相关产品推荐

