在这段代码中,我创建了对象,其中包含形容词或不同性别的名词。我还键入了“美丽的格言” ,尽管EnAdjectives具有“美丽的” 和“ maxim” 属于“ EnMaleNouns” “ ,else
语句将执行。
let EnMaleNouns = {...};
let EnAdjectives = {...};
function conj() {
let sentence = document.getElementById("input_one").value.split(" ").filter(item => item != "")
let final = [];
for (let word in sentence) {
for (let key in EnAdjectives) {
if (sentence[word] == key && sentence[++word] in EnMaleNouns) {
//do something
} else {
//do something
}
}
}
}
有人可以告诉我如何解决该问题,为什么会发生这种情况?
答案 0 :(得分:0)
内部循环是for in
循环。因此,键将保留索引位置作为值,即key = [0,1]
。因此,在您的if条件中,它将与'beautiful' == 0
进行比较,这将永远是不正确的。因此else块每次都会执行。
解决方案: 将for循环用于您的内部循环,
for(let key of EnAdjectives)