Javascript:if/for循环存在问题

Javascript:if/for循环存在问题,javascript,Javascript,我试图让我的函数根据输入的元音数量返回某些响应。但是,它似乎将整个单词复制到新数组中 Expected: die Jürgen, instead got: der Jürgen 谁能告诉我我把事情搞砸了吗 function derDieDas(wort){ var vowels = ['a', 'e', 'i', 'o', 'u', 'ä', 'ö', 'ü']; var newArray = []; for(var i in wort) { for(var j in

我试图让我的函数根据输入的元音数量返回某些响应。但是,它似乎将整个单词复制到新数组中

Expected: die Jürgen, instead got: der Jürgen
谁能告诉我我把事情搞砸了吗

function derDieDas(wort){
  var vowels = ['a', 'e', 'i', 'o', 'u', 'ä', 'ö', 'ü'];
  var newArray = [];
  for(var i in wort) {
    for(var j in vowels) {
      if(i === j) {
        newArray[newArray.length] = i;
      };
    };
  };
  if(newArray.length < 2) {
    return 'das ' + wort;
  } else if(newArray.length < 4) {
    return 'die ' + wort;
  } else {
    return 'der ' + wort;
  }
};
function-derDieDas(麦汁){
可变元音=['a','e','i','o','u','228','ö','ü'];
var newArray=[];
用于(麦汁中的var i){
for(元音中的var j){
如果(i==j){
newArray[newArray.length]=i;
};
};
};
if(newArray.length<2){
返回“das”+麦汁;
}else if(newArray.length<4){
返回“模具”+麦汁;
}否则{
返回'der'+麦汁;
}
};

您正在比较索引

if (i === j) {
而不是像

if (wort[i] === vowels[j]) {

你为什么要猜这些循环是做什么的?放置
console.log(newArray)并在浏览器控制台中查看结果(按F12)。它应该是
if(wort[i]==元音[j]){newArray[newArray.length]=wort[i];}
在循环中。你在比较索引,而不是值。在JS中,你可以使用大量的数组方法。使用
for(iter的var项){}
Array.prototype.forEach
而不是
for(obj中的var项){}
循环数组以避免遇到对象属性。您还可以使用
Array.prototype.push
将项目添加到数组中。就像您和Xufox所说的,我在比较错误的东西。我最终用一串元音替换了元音数组。您仍然会将字符串称为元音[j]而不是[j],对吗?只是
[j]
没有意义,因为它返回一个值为
j
的字符串,因为它使用