三目运算符
Posted gitbylegend
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三目运算符相关的知识,希望对你有一定的参考价值。
在js中使用三目运算符能够很大程度上提高代码的,简洁度,但是三目运算符对于js功底不够深厚的同学来说,又实在有些费解和难以记忆,在此简单的做个备忘。
三元运算符的表达式:
(expression1) ? (expression2) : (expression3)
在 expression1 求值为 true 时的返回值为 expression2 ,在expression1 求值是 false 时的返回值值为 expression3 。
示例:
var hash = isString(hash) ? hash : isNumber(hash) ? hash.toString() :$location.hash;
上面的代码等价于
if(isString(hash)) return hash; else if(isNumber(hash)) return hash.toString(); else return $location.hash;
还有一种情况是,我们不单单要在结果中进行一种运算,而是多个,那么要怎么办呢?
示例
let log = console.log.bind(console); let person = [ id: 0, name: "小明", id: 1, name: "小张", id: 2, name: "小李", id: 3, name: "小孙", id: 1, name: "小周", id: 2, name: "小陈", id: 0, name: "重复", ]; let obj = ; person = person.reduce((cur,next) => obj[next.id] ? "" : (obj[next.id] = true , cur.push(next)); return cur; ,[]) //设置cur默认类型为数组,并且初始值为空的数组 log(person);
在上面的代码中我们可以看到,这里我们先给obj对象的属性进行复制,而后执行了reduce的逻辑,只要把处理逻辑用小括号包裹起来并且用逗号分隔即可。
以上是我对三目运算符的一点粗浅的理解和实践,如有疏漏,欢迎斧正。
以上是关于三目运算符的主要内容,如果未能解决你的问题,请参考以下文章