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