我想知道是否可以像下面的例子那样直接访问条件的值。使用if/else中的条件值
var a = ["pear", "kiwi", "orange", "apple"]
if(a.indexOf("orange") !== -1){
console.log(this) //as a.indexOf("orange") has been evaluated already above this prints 2
}
这也会使三元运营商少bloaty
var a = ["pear", "kiwi", "orange", "apple"]
var b = ((a.indexOf("orange") !== -1) ? this : '') //"this" equals 2
感谢
编辑: 清除这个问题了任何未来的访客。 基本上这个问题是关于检索在if/else语句中评估的结果值。在
var a = ["pear", "kiwi", "orange", "apple"]
if(a.indexOf("orange") !== -1){ //is basically if(2 !== -1)
console.log(this) //would then be "2" from the already evaluted a.indexOf from above
}
需要注意的是什么你问的是*不*访问条件的值。条件是“真”或“假”。你想访问条件中的一个子表达式的值(特别是'indexOf()'返回的)。 – Barmar
@Barmar因此,为什么这个问题似乎困惑了每个人。询问条件的价值是有道理的,理论上这可以起作用 – aw04
这就是为什么人们应该阅读问题中的所有细节,包括代码中的注释,以便理解它。人们并不总是很擅长找到合适的单词。 – Barmar