三目运算符

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的逻辑,只要把处理逻辑用小括号包裹起来并且用逗号分隔即可。

  以上是我对三目运算符的一点粗浅的理解和实践,如有疏漏,欢迎斧正。

以上是关于三目运算符的主要内容,如果未能解决你的问题,请参考以下文章

三目运算符

java三目运算符

java三目运算符

java三目运算符

java 三目运算符

python三目运算符