zoukankan      html  css  js  c++  java
  • 三目运算符

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

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

  • 相关阅读:
    从一个表格文件中录入信息,进行计算后,在文件中输出这个表格
    求一个字符串的最小正周期
    算法竞赛入门例题3-5生成元
    算法竞赛入门经典 例题3-4 猜数字游戏的提示
    回文词
    WERTYU找不出不能输出空格的原因SSSSSSSSSSSSS
    DAY 106 ES介绍
    DAY 105 redis集群搭建
    DAY 104 redis高级02
    DAY 103 redis高级01
  • 原文地址:https://www.cnblogs.com/gitByLegend/p/11399349.html
Copyright © 2011-2022 走看看