【发布时间】:2019-07-20 09:34:24
【问题描述】:
比方说,我有字符串programit,我有一堆数组:
this.delimiter = ['pro','gram','merit','program','it,'programmer']
我需要输出变成['pro','gram','it','program','it'],
尝试
this.name = 'programit';
this.newname = [''];
let fakeinput = this.name;
let b=0;
for(let a=0;a<this.delimiter.length;a++){
if(fakeinput.length==0){
fakeinput=this.name;
}
//console.log(`console ${fakeinput}`);
if(fakeinput.match(`^${this.delimiter[a]}`)){
this.newname[b] = this.delimiter[a]
fakeinput=remove_character(this.delimiter[a],fakeinput);
b++;
}
for(let c=0;c<=a;c++){
if(this.delimiter[a]!=this.delimiter[c]){
if(fakeinput.match(`^${this.delimiter[c]}`)){
this.newname[b] = this.delimiter[c]
fakeinput=remove_character(this.delimiter[c],fakeinput);
b++;
}
}
}
}
返回
['pro','gram','it','pro','gram','it']
我需要让我的代码不重复第一个分隔符,所以它不会重复 'pro' 值。
另一个输入和输出是:
输入
programmerit
输出
['pro','gram','merrit','program','merrit','programmer','it']
【问题讨论】:
-
let this.name = 'programit';语法错误。let和this不能混用 -
好吧,这只是我发帖时的错。不是我的实际代码
-
如果您不提供实际代码,我们提供的任何答案都不会在您的实际环境中起作用。
-
我的意思是只为
let this.name -
this.newname = this.delimiter.filter(sub=>this.name.includes(sub));完成
标签: javascript regex substring