首页 > 解决方案 > 为什么我的代码无法通过 Javascript 中从字符串中删除空格的测试?

问题描述

大家好!我是编码新手,我没有通过这个测试。我需要为这个字符串编写代码:

'<h2>         Lost In Space</h2>'

改成这个字符串(基本上去掉标题和文本之间多余的空格):

'<h2>Lost In Space</h2>'

我写的代码看起来像这样,在我的编辑器中它似乎返回了正确的输出,但由于某种原因,它在通过在线测试时失败了

function markdownParser(markdown) {
    let arr = markdown.trim().split(' ');
    let firstItemInArray = arr[0]; 
    if(firstItemInArray[0] === '<') {
        arr.shift(); 
        let newString = arr.join(' '); 
        let trimmedString = newString.trim(); 
        return `${firstItemInArray}${trimmedString}`
      } else {
        return markdown;
    }
}

知道为什么会发生这种情况以及我的错误在哪里吗?

测试失败:edge_cases

expected '<h2>         Lost In Space</h2>' to deeply equal '<h2>Lost In Space</h2>'

标签: javascriptarraysstringstring-parsing

解决方案


有点作弊和一点黑客,但一个可靠的。可以更改为仅修剪文本节点。名称暗示它是 Markdown,所以这实际上可能不起作用?

str=`<h2>     test</h2>`

const div = document.createElement('div')
div.innerHTML=str
div.querySelectorAll('*').forEach(x=>x.innerHTML=x.innerHTML.trim())

console.log(div.innerHTML)
<div id="div"></div>


推荐阅读