Javascript 用…来掩盖字符串#

Javascript 用…来掩盖字符串#,javascript,arrays,string,loops,Javascript,Arrays,String,Loops,嗨,有人能看一下我的代码,告诉我我要修复什么吗。这段代码的功能是它接受参数中的任何给定字符串,并用#隐藏字符串的字符。除最后4个字符外,所有字符均隐藏。我不知道为什么我没有得到想要的输出。请随意运行代码并查看。我希望解决方案是对代码的更正或改进,而不是新的代码。谢谢大家! const maskify=(info)=>{ 设fourSaved=info.slice((info.substr(-4))//在参数中输入一个负数,使其从后开始。此变量将保存字符串的最后4个字符。 const infoA

嗨,有人能看一下我的代码,告诉我我要修复什么吗。这段代码的功能是它接受参数中的任何给定字符串,并用#隐藏字符串的字符。除最后4个字符外,所有字符均隐藏。我不知道为什么我没有得到想要的输出。请随意运行代码并查看。我希望解决方案是对代码的更正或改进,而不是新的代码。谢谢大家!

const maskify=(info)=>{
设fourSaved=info.slice((info.substr(-4))//在参数中输入一个负数,使其从后开始。此变量将保存字符串的最后4个字符。
const infoArr=info.split(,“”//将字符串转换为数组以便于操作
for(设i=0;i
以下是答案:

const maskify=(info)=>{
返回信息片(0,-4)。替换(/[a-zA-Z]/g,“#”).concat(信息片(-4,信息片));
}

console.log(maskify(“hello world”)//所需的输出应该是:#######orld
您最好使用一个
for()
循环,该循环只需对字符串从
0
string.length-4
进行迭代,并以这种方式替换每个字符。这段代码不必要地复杂。这是一个熟悉调试器使用的好机会。例如,如果在网页上运行此代码,则可以使用浏览器的内置脚本调试器(如果没有,Chrome有)在函数的第一行放置断点,然后重新调用(可能通过重新加载页面)开始调试。调试完成后,您可以在代码执行时逐行遍历代码,并观察每个特定操作的确切运行时结果。当您这样做时,哪个操作是第一个产生意外结果的操作?附议@David的注释,并注意您也可以简单地添加单行语句
调试器也会导致调试器在该行中断。谢谢大家!嗨@Batshevrich成功了!谢谢你能解释一下这部分代码:/[a-zA-Z]/g吗?如果MDN上有进一步解释这个概念的链接,我将不胜感激@KazimShabbir编辑了答案,希望解释一下…谢谢你,这很有意义@BatshevaRich@KazimShabbir伟大的如果答案有帮助,请投票表决。