Javascript 如何通过检查对象的值来保持构造字符串上的间距

Javascript 如何通过检查对象的值来保持构造字符串上的间距,javascript,Javascript,返回一个字符串,该字符串将字符替换为字符串中的相应值, 如果该字符不存在,请将“?”添加到结果字符串中。 记住要在两者之间留有空隙 我的问题是我不能在结果字符串中创建空格。我的条件语句有问题吗 var dict = {a: 'e', s: 'o', b: 't', g: 'q' }; function second(str, obj) { let result = ''; for (le

返回一个字符串,该字符串将字符替换为字符串中的相应值, 如果该字符不存在,请将“?”添加到结果字符串中。 记住要在两者之间留有空隙

我的问题是我不能在结果字符串中创建空格。我的条件语句有问题吗

var dict = {a: 'e',
            s: 'o',
            b: 't',
            g: 'q'
           };

function second(str, obj) {
  let result = '';
  
  for (let i = 0; i < str.length; i++) {
    if (obj[str[i]] === undefined) {
      result += '?';
    }
    else if (obj[str[i]]!== undefined && str[i] !== ' ') {
      result += obj[str[i]];
    } else if (obj[str[i]] !== undefined && str[i] === ' ') {
      result += ' ';
    }     
  }
  return result;
}


console.log(second('hi bro what is going on', dict)); // '?? t?? ??e? ?o q???q ??'
var dict={a:'e',
s:‘o’,
b:‘t’,
g:‘q’
};
第二功能(str、obj){
让结果=“”;
for(设i=0;i
问题在于
如果(obj[str[i]==未定义){
检查-对象中不存在空格,因此它连接了

您可以在dict中添加空格来修复它:

var dict={a:'e',
s:‘o’,
b:‘t’,
g:‘q’,
' ': ' '
};
第二功能(str、obj){
让结果=“”;
for(设i=0;iconsole.log(第二个(‘嗨,兄弟,发生了什么事’,dict))/“?t???e???o q???q???”
我想补充一点,你也可以检查它是否是一个空格——不过你编辑它也是为了添加它。也许对于你想保留的其他字符,做一个
保留
dict并检查其中是否有字符?我的意思是,这看起来像是家庭作业之类的,所以我认为没有必要这样做ary,但它可能会被证明对…其他东西有用(IDK,无论如何,这会有什么好处)。nullish操作符到目前为止还是很新的,我建议使用其他东西作为支持。