Javascript 无法作为字符串进行测试

Javascript 无法作为字符串进行测试,javascript,arrays,string,Javascript,Arrays,String,我正在做一些练习,并在代码战中遇到了这个问题。这是一个简单的练习,说明如何创建一个名为shortcut的函数来删除给定字符串中的所有小写元音。 示例: shortcut("codewars") // --> cdwrs shortcut("goodbye") // --> gdby 我是新手,所以我想出了这个解决方案。但它不起作用,我也不知道为什么 function shortcut(string){ // create an array of individual char

我正在做一些练习,并在代码战中遇到了这个问题。这是一个简单的练习,说明如何创建一个名为shortcut的函数来删除给定字符串中的所有小写元音。 示例:

shortcut("codewars") // --> cdwrs
shortcut("goodbye")  // --> gdby
我是新手,所以我想出了这个解决方案。但它不起作用,我也不知道为什么

function shortcut(string){
  // create an array of individual characters
  var stage1 = string.split('');  

  // loop through array and remove the unneeded characters
  for (i = string.length-1; i >= 0; i--) {
  if (stage1[i] === "a"|| 
      stage1[i] === "e"|| 
      stage1[i] === "i"||
      stage1[i] === "o"||
      stage1[i] === "u") {
    stage1.splice(i,1)
    ;}
  };

  // turn the array back into a string
    string = stage1.join('');
    return shortcut;
}
我的直觉告诉我,如果不创建真正的数组和字符串,可能会喜欢拆分和连接


我一开始是用正则表达式做的,目的是让它更易于重用,但那是一场噩梦。我很乐意听取关于实现同样目标的其他方法的建议

您正在返回函数本身,而不是返回字符串

您正在返回函数本身,而不是使用正则表达式返回字符串

var str=‘代码战争’; var regex=/[aeiou]/g; var result=str.replaceregex; document.writeresult 使用正则表达式:

var str=‘代码战争’; var regex=/[aeiou]/g; var result=str.replaceregex;
document.writeresult 如果对正则表达式感兴趣

function shortcut(str) {
    return str.replace(/[aeiou]/g, "");
}

如果对正则表达式感兴趣

function shortcut(str) {
    return str.replace(/[aeiou]/g, "");
}

为什么注册exp不好?如果您决定尝试使用RegExp,它看起来非常简单,并且不需要循环:codewars.replace/[aeiou]/gi;。对不起,我不理你。发帖后30秒左右就知道了。。。。返回字符串它不工作是有点模糊。它以什么方式不起作用?og,我简直不敢相信我经历了所有这些。replaceregex是一个显而易见的解决方案。我仍然在循环使用regex作为if条件。谢谢你们,就像我说的,菜鸟!为什么注册exp不好?如果您决定尝试使用RegExp,它看起来非常简单,并且不需要循环:codewars.replace/[aeiou]/gi;。对不起,我不理你。发帖后30秒左右就知道了。。。。返回字符串它不工作是有点模糊。它以什么方式不起作用?og,我简直不敢相信我经历了所有这些。replaceregex是一个显而易见的解决方案。我仍然在循环使用regex作为if条件。谢谢你们,就像我说的,菜鸟!