今天我试着缩短if语句是这样的:感实性字符串与键
if (fruit == "apple" || type == "pear" || type == "orange"){
这样:
if (fruit in ["apple", "pear", "orange"]){
它不工作。乔纳森·斯努克有不同的解决方案here在那里他主要是靠地图是这样,它不工作:
if(fruit in {"apple":"", "pear":"", "orange":""}){
为什么这项工作,我简单的数组不,当通常在Javascript对象的存在使得该对象返回true?字符串是不同于对象的不同类型的对象吗?我认为字符串在我的数组中的存在也会返回true。
y = "Stackoverflow";
y && console.log('y is true') // y returns true, so console logs the message
我将我的原始解决方案解释为“如果变量水果的值在这个数组中”。显然并非如此。它是否会说“如果变量水果本身在这个数组中?”不,因为这不起作用或者:
if (fruit in [fruit, "apple", "pear", "orange"]){
那么,什么是斯努克的版本与键=>值映射问这是正确的?我最好的猜测是,“如果这张地图中变量水果的名称下的一个关键字返回true?”
对,但我想检查一个变量的值与数组中的字符串。你的陈述永远是真实的,但“水果”可能不是苹果,梨或橙。 –
我不明白你的观点。你想知道为什么它不起作用,我回答了。你可以用'5'代替'0',它会返回'false'。 –
是的,我明白了,我认为你是在暗示你的代码是我的另一种选择,但是我现在明白你只是提出了一个观点。谢谢 –