javascript - Join() 方法仅将一些数组转换为字符串

标签 javascript

我正在尝试编写一个代码,将字符串“way”添加到以元音开头的单词中,或者如果该单词以以下形式开头,则在字符串末尾添加单词“ay”和该单词的第一个字母一个辅音。我将单词分开,看看是否以辅音或元音开头,然后在第一个字母中添加“way”或“ay”,最后加入数组以显示结果字符串。问题是连接仅适用于以元音开头的单词。我该如何解决这个问题?

代码:

function isVowel(c) {
  return ['a', 'e', 'i', 'o', 'u'].indexOf(c.toLowerCase()) !== -1;
}

function translatePigLatin(str) {

  str=str.split('');
  var firstLetter=str[0];

  if(isVowel(firstLetter)) str.push("way");

  else {    

     str.splice(0,1);
     str=str+firstLetter+"ay";

  }

  str= Array.prototype.join.call(str,"");
  alert(str);

  return str;
}

translatePigLatin("consonant"); 

最佳答案

您将运算符 + 添加到数组中,这可能会弄乱类型,将数组转换为字符串。您应该在数组上使用 push 来获得您想要的行为。

function isVowel(c) {
  return ['a', 'e', 'i', 'o', 'u'].indexOf(c.toLowerCase()) !== -1;
}

function translatePigLatin(str) {

  str=str.split('');
  var firstLetter=str[0];

  if(isVowel(firstLetter)){
   
    str.push("way");

  }else {    

     str.splice(0,1);
     str.push(firstLetter+"ay");

  }

  str= Array.prototype.join.call(str,"");
  alert(str);

  return str;
}

translatePigLatin("consonant"); 

关于javascript - Join() 方法仅将一些数组转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40566785/

相关文章:

javascript - 根据所选偏好匹配数据

javascript - 无法读取未定义的属性 'save'

javascript - 创建对话框时未捕获 TypeError : $(. ..).dialog 不是函数错误

javascript - 链接这个 jquery 表达式

javascript - react : Preserve local component state of tabbed content

javascript - 如何在 Rails 3.1 Assets 管道中获取 EXTJS 4?

javascript - 为什么窗口的宽度为空?

javascript - JS DecodeURIComponent 在 Firefox 中返回空字符串(最新)

javascript - Unca无法将属性 'innerHTML' 设置为 null

javascript - 使用正则表达式数组进行 .match