从字符串中删除字符然后反转它
Remove characters from a string then reverse it
我需要一个接受字符数组和 returns 相同数组但颠倒且没有“*”字符的函数。
我试了很多代码都没有成功。这是我的最后一次尝试(抱歉,如果没有意义,我正在学习 JS)
function laClaveSecreta(carac){
let new_str=[];
for(i=0;i<carac.length;i++){
if(carac[i]==="*"){
new_str=new_str.push(carac.replace(/[*\s]/g, ''));
}
return new_str.reverse();
}
}
//Running the function with this parameter
laClaveSecreta( [ "s", "*", "e", "n", "u", "l", " ", "s", "*", "e", " ", "a", "í", "*", "d", " ", "l", "*", "E", "*"] )
//Result I am looking for
"El día es lunes"
先将数组转换成字符串会更容易,然后可以对整个字符串使用replace -
const input =
[ "s", "*", "e", "n", "u", "l", " ", "s", "*", "e", " ", "a", "í", "*", "d", " ", "l", "*", "E", "*"]
console.log(input.reverse().join("").replace(/[*]/g, ""))
El día es lunes
不过,这不会教给您很多东西。我认为这是家庭作业或其他东西。使用 reverse
、join
和 replace
等内置函数是更高级别的。您可以使用非常基本的 for
循环 -
来解决问题
function laClaveSecreta(carac)
{ let r = ""
for (const c of carac)
if (c == "*")
continue
else
r = c + r
return r
}
const input =
[ "s", "*", "e", "n", "u", "l", " ", "s", "*", "e", " ", "a", "í", "*", "d", " ", "l", "*", "E", "*"]
console.log(laClaveSecreta(input))
El día es lunes
function laClaveSecreta(carac){
let new_str=[];
for(i=0;i<carac.length;i++){
if(carac[i] !=="*"){
new_str.push(carac[i]);
}
}
return new_str.reverse();
}
我过滤了数组,将其反转,然后在没有正则表达式的情况下加入了它。代码看起来更清晰并解释了步骤。
const laClaveSecreta = (arr) => arr.filter(arrItem => arrItem !== '*').reverse().join('');
laClaveSecreta( [ "s", "*", "e", "n", "u", "l", " ", "s", "*", "e", " ", "a", "í", "*", "d", " ", "l", "*", "E", "*"] )
尝试使用 let filteredArray = carac.filter( char => char != '*')
然后 return filteredArray.reverse().join("")
另一种方法使用 Array.prototype.filter()
。
const input =
[ "s", "*", "e", "n", "u", "l", " ", "s", "*", "e", " ", "a", "í", "*", "d", " ", "l", "*", "E", "*"]
console.log(input.reverse().filter(item => item !== "*").join(""));
你可以这样做...
const laClaveSecreta = carac =>
{
let new_str = '';
for(i=carac.length;i--;)
if(carac[i]!=="*") new_str +=carac[i]
return new_str
}
console.log( laClaveSecreta('s*enul s*e aí*d l*E*'))
或
const laClaveSecreta = carac => carac.reduceRight((a,c)=> (c==="*") ? a : a+c ,'')
console.log( laClaveSecreta([...'s*enul s*e aí*d l*E*']))
我需要一个接受字符数组和 returns 相同数组但颠倒且没有“*”字符的函数。
我试了很多代码都没有成功。这是我的最后一次尝试(抱歉,如果没有意义,我正在学习 JS)
function laClaveSecreta(carac){
let new_str=[];
for(i=0;i<carac.length;i++){
if(carac[i]==="*"){
new_str=new_str.push(carac.replace(/[*\s]/g, ''));
}
return new_str.reverse();
}
}
//Running the function with this parameter
laClaveSecreta( [ "s", "*", "e", "n", "u", "l", " ", "s", "*", "e", " ", "a", "í", "*", "d", " ", "l", "*", "E", "*"] )
//Result I am looking for
"El día es lunes"
先将数组转换成字符串会更容易,然后可以对整个字符串使用replace -
const input =
[ "s", "*", "e", "n", "u", "l", " ", "s", "*", "e", " ", "a", "í", "*", "d", " ", "l", "*", "E", "*"]
console.log(input.reverse().join("").replace(/[*]/g, ""))
El día es lunes
不过,这不会教给您很多东西。我认为这是家庭作业或其他东西。使用 reverse
、join
和 replace
等内置函数是更高级别的。您可以使用非常基本的 for
循环 -
function laClaveSecreta(carac)
{ let r = ""
for (const c of carac)
if (c == "*")
continue
else
r = c + r
return r
}
const input =
[ "s", "*", "e", "n", "u", "l", " ", "s", "*", "e", " ", "a", "í", "*", "d", " ", "l", "*", "E", "*"]
console.log(laClaveSecreta(input))
El día es lunes
function laClaveSecreta(carac){
let new_str=[];
for(i=0;i<carac.length;i++){
if(carac[i] !=="*"){
new_str.push(carac[i]);
}
}
return new_str.reverse();
}
我过滤了数组,将其反转,然后在没有正则表达式的情况下加入了它。代码看起来更清晰并解释了步骤。
const laClaveSecreta = (arr) => arr.filter(arrItem => arrItem !== '*').reverse().join('');
laClaveSecreta( [ "s", "*", "e", "n", "u", "l", " ", "s", "*", "e", " ", "a", "í", "*", "d", " ", "l", "*", "E", "*"] )
尝试使用 let filteredArray = carac.filter( char => char != '*')
然后 return filteredArray.reverse().join("")
另一种方法使用 Array.prototype.filter()
。
const input =
[ "s", "*", "e", "n", "u", "l", " ", "s", "*", "e", " ", "a", "í", "*", "d", " ", "l", "*", "E", "*"]
console.log(input.reverse().filter(item => item !== "*").join(""));
你可以这样做...
const laClaveSecreta = carac =>
{
let new_str = '';
for(i=carac.length;i--;)
if(carac[i]!=="*") new_str +=carac[i]
return new_str
}
console.log( laClaveSecreta('s*enul s*e aí*d l*E*'))
或
const laClaveSecreta = carac => carac.reduceRight((a,c)=> (c==="*") ? a : a+c ,'')
console.log( laClaveSecreta([...'s*enul s*e aí*d l*E*']))