【问题标题】:Remove a substring from a string in Javascript从Javascript中的字符串中删除子字符串
【发布时间】:2020-11-15 18:16:26
【问题描述】:

有一个函数有两个参数作为参数,第一个参数是字符串,第二个是子字符串:

function myFun(str, substr) {}

我想编写一个函数,从字符串中删除子字符串的内容。例如:

str: My name is Chuck Norris

substr: is Chuck

返回值必须是这样的数组:['My', 'name', 'Norris']

我试着这样做:

function myFun(str, substr) {
    const result = str.replace(substr, '');
    const final = result.trim().split(' ');
    return final;
}

我正在hackerRank 上使用它,但有些测试失败了。 是不是有什么问题?

【问题讨论】:

  • 能否提供 Hackerrank 问题的链接

标签: javascript arrays string ecmascript-6


【解决方案1】:

你错过了一个过滤器

const str = "My name is Chuck Norris"
const substr = "is Chuck"

function myFun(str, substr) {
  const result = str.replace(substr, '');
  const final = result.trim().split(' ').filter(a => a.trim() != "");
  return final;
}

console.log(myFun(str, substr))

另类

const str = "My name is Chuck Norris"
const substr = "is Chuck"

function myFun(str, substr) {
  const re = new RegExp(`\\b${substr}\\b`)
  const result = str.replace(substr,"").replace(/\s+/g," ")
  const final = result.trim().split(' ');
  return final;
}

console.log(myFun(str, substr))

【讨论】:

  • 我尝试了一个更长的示例,第一个字符串:“我正在使用 hackerrank 来改进编程”,第二个字符串:“am hackerrank 来改进”。但它不适用于这个,它将原始字符串作为数组返回,知道为什么吗?
  • 因为第二个字符串中没有using
【解决方案2】:

解决此任务的第二条路径:

你可以设置.replace(/\s\s+/g, ' ')

screenshot with result

function myFun(str, substr) {
    const result = str.replace(substr, '').replace(/\s\s+/g, ' ');
    const final = result.trim().split(' ');
    return final;
}

let result = myFun('My name is Chuck Norris', 'is Chuck');

document.querySelector('#output').innerHTML = result

console.log(myFun('My name is Chuck Norris', 'is Chuck'))
<div>Result:</div>
<div id="output"></div>

【讨论】:

    猜你喜欢
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多