【发布时间】:2019-01-05 02:16:56
【问题描述】:
我的代码只会执行第一个 if 语句,它检查标题 1 的键值等...不是真的。我已将第二个语句切换到第一个检查“desc1”的语句,然后它仅适用于该语句。
此函数的目的是检查对象的每个键并在其值超过一定长度时返回该键,以便我可以添加一个类并向用户显示一些警告。这是在 Vue JS 中,所以 ads 在数据中,而 characterCheck 在计算属性中。
ads: [
{
headline1: '_keyword_',
headline2: 'Online',
headline3: 'Free',
desc1: 'Buy online _keyword_',
desc2: ' Vast collection of _keyword_',
finalurl: 'www.books.com',
path1: '',
path2: '',
boolean: true
}
]
characterCheck () {
for(var x = 0; x < this.ads.length; x++){
if(this.ads[x]['boolean'] == true) {
for(var key in this.ads[x]){
var length = this.ads[x][key].replace(/_keyword_/g, this.activeKeyword).length
if( key === 'headline1' || key === 'headline2' || key === 'headline3'){
if(length > 30){
return key
}
} else if( key == 'desc1' || key == 'desc2'){
if(length > 90){
return key
}
} else if( key == 'path1' || key == 'path2'){
if(length > 15){
return key
}
} else {
return false
}
}
}
}
}
【问题讨论】:
-
这里有很多分支没有解决。你知道哪些被处决了吗?考虑明确地写出每一个,这样你就可以准确地确定正在遵循的路径。还要考虑提供样本输入和预期结果...
-
您第一次使用三等号,随后使用普通等号。故意的?
-
@tehhowch 一切正常,直到设置“var length”后的 if 语句。它循环遍历设置为 true 的广告,会有多个广告,只有一个会设置为 true,这就是它首先检查该值的原因。第一个 if 语句正常工作,它检查键是否为 'headline1' 'headline2' 'headline3' 但当它为假并且我希望键为 'desc1' 'desc2' 或任何其他键时 if 语句不会评估。我切换了 if 语句以缩小问题范围并首先检查 key== 'desc1' 或 key == 'desc2' ,然后突然就可以了。
-
我第一次尝试了三次等于,只是为了看看是否出于某种原因可以解决问题。只是在这里变得绝望哈哈@another-dave
-
至于它应该返回什么,此时我只想返回一个键的值的长度超过某个字符限制的键,这就是 if 语句的作用。
标签: javascript vue.js