gpt4 book ai didi

javascript - 仅当找到或未找到结果时,如何才能 console.log ?

转载 作者:太空宇宙 更新时间:2023-11-04 16:13:50 25 4
gpt4 key购买 nike

我正在为学习项目创建一个小型搜索工具,但我不明白为什么这个 console.logs 两次

var states = {
North_Dakota: {capital: 'Bismarck', region: 'Mid-west'},
Minnesota: {capital: 'Saint paul', region: 'Mid-west'},
Montana: {capital: 'Helena', region: 'Mid-west'},
Wisconsin: {capital: 'Madison', region: 'Mid-west'}
};

var searchCapitals = function(givenWord){
for (var key in states) {
if (givenWord.toLowerCase() === key.toLowerCase()) {
console.log('Search found: ' + key + ' (capital: ' + states[key].capital + ', region: ' + states[key].region + ')')
} else (givenWord.toLowerCase() != key.toLowerCase()) {
console.log('No results found.')
}
}
};

searchCapitals('wisconsin');

因为“wisconsin”匹配,所以它应该只输出第一次吗?但它会为每个对象项记录字符串“未找到结果”。我们将不胜感激。

最佳答案

不要记录循环,而是尝试在循环中设置一个 bool 值,并记录是否循环了整个对象或数组:

var states = {
North_Dakota: {capital: 'Bismarck', region: 'Mid-west'},
Wisconsin: {capital: 'Madison', region: 'Mid-west'},
Minnesota: {capital: 'Saint paul', region: 'Mid-west'},
Montana: {capital: 'Helena', region: 'Mid-west'}
};

var searchCapitals = function(givenWord){
var found = false;
var foundKey = "";

for (var key in states) {

console.log(key);
if (givenWord.toLowerCase() === key.toLowerCase()) {
found = true;
foundKey = key;
break; // stop searching if you found a matching pair
}
}

if(found)
console.log('Search found: ' + foundKey + ' (capital: ' + states[foundKey].capital + ', region: ' + states[foundKey].region + ')')
else
console.log('No results found.')
};

searchCapitals('wisconsin');

关于javascript - 仅当找到或未找到结果时,如何才能 console.log ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41231149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com