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
的字符串,因为它使用