Javascript 同时比较json项值
我的学院编写了一个函数,如下所示:Javascript 同时比较json项值,javascript,ecmascript-6,Javascript,Ecmascript 6,我的学院编写了一个函数,如下所示: const wrapper = item => { switch (item.type && item.name) { case 'Url' && 'Website': return Text(values.Website) case 'Email' && 'Email': return Text(values.Emai
const wrapper = item => {
switch (item.type && item.name) {
case 'Url' && 'Website':
return Text(values.Website)
case 'Email' && 'Email':
return Text(values.Email)
case 'Mobile' && 'TelegramPhoneNumber':
return Mobile(values.TelegramPhoneNumber)
case 'Phone' && 'Phone1':
return Phone(values.Phone1)
case 'Phone' && 'Phone2':
return Phone(values.Phone2)
default:
return Text(values[4])
}
}
显然,它得到一个json作为参数,并试图同时确定类型和名称。(这是我对这段代码的理解)我在网上搜索了javascript
&&
操作符,似乎&&
没有按照代码的预期工作。但是我想我可能错过了一些东西,Javascript能处理这个问题吗 但是我想我可能错过了一些东西,Javascript能处理这个问题吗 不,javascript无法处理这些问题 或者,让我们说出全部事实:它在任何情况下都不会,因为它不是一种语言功能,它只是
&
的工作方式和使用方式,因为如果左侧值是真实的,那么场景中的&
操作符将始终计算为右侧值
console.log('a'&&&b');//代码中根本没有JSON。。。JSON是一个字符串item.type&&item.name
将始终计算为这两个值中的任何一个,它将永远不会同时返回这两个值。可能使用if/else块是处理此问题语句的正确方法。最聪明的方法可能是使用按位AND,尤其是在这种情况下。将&&
替换为&
,所有操作都应按预期进行,按位和将产生不同的结果,并实际匹配案例。@briosheje我认为这不会产生预期的结果。``'name1'和'value1'返回0,'name2'和'value2'
也返回0