V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
? Meteor
? JSLint - a JavaScript code quality tool
? jsFiddle
? D3.js
? WebStorm
推荐书目
? JavaScript 权威指南第 5 版
? Closure: The Definitive Guide
chenliangngng
V2EX  ?  JavaScript

判断数组 length 等于 0,怎么编码比较优雅?与 0 比较还是取反?

  •  
  •   chenliangngng · 2020-05-07 15:43:16 +08:00 · 4278 次点击
    这是一个创建于 1456 天前的主题,其中的信息可能已经有所发展或是发生改变。

    腾讯云最新优惠活动来了:云产品限时1折,云服务器低至88元/年 ,点击这里立即抢购:9i0i.cn/qcloud,更有2860元代金券免费领取,付款直接抵现金用,点击这里立即领取:9i0i.cn/qcloudquan

    (福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

    arr.length === 0

    !arr.length

    考虑语义、执行效率、代码量等

    27 条回复  ?  2020-12-04 16:02:46 +08:00
    aogu555
        1
    aogu555  
       2020-05-07 15:53:21 +08:00   ?? 1
    JSON.stringify(arr) === '[]'
    aogu555
        2
    aogu555  
       2020-05-07 15:53:35 +08:00
    我来个不优雅的 hhh
    cnmllll
        3
    cnmllll  
       2020-05-07 15:54:09 +08:00
    arr.length === 0
    dragonbuf
        4
    dragonbuf  
       2020-05-07 15:56:08 +08:00
    isEmpty(arr) {return arr.length === 0}
    SilentDepth
        5
    SilentDepth  
       2020-05-07 16:03:00 +08:00
    arr.length === 0

    直观、无歧义
    marcong95
        6
    marcong95  
       2020-05-07 16:10:22 +08:00   ?? 1
    import isNonEmptyArray from 'is-non-empty-array'

    !isNonEmptyArray(arr) //
    raincode
        7
    raincode  
       2020-05-07 17:15:42 +08:00
    if(!arr.length){}
    Mohanson
        8
    Mohanson  
       2020-05-07 17:19:00 +08:00 via Android   ?? 10
    写一个 isEmpty 包放 npm 上,然后 import 它
    ooops
        9
    ooops  
       2020-05-07 17:19:50 +08:00
    定义个方法比较优雅啊 arr.isEmpty()
    wuhaoworld
        10
    wuhaoworld  
       2020-05-07 17:29:39 +08:00
    @Mohanson 这个比较讽刺
    myd
        11
    myd  
       2020-05-07 17:31:52 +08:00
    arr.length === 0

    这样写比较好理解,另外,性能瓶颈也不会在这个地方
    guiling
        12
    guiling  
       2020-05-07 18:48:16 +08:00 via Android
    来个骚操作,忽略特殊情况
    if(arr[0]){}
    anjianshi
        13
    anjianshi  
       2020-05-07 19:05:42 +08:00
    @guiling 这个问题很大。数组内容是 [false], [0], [''] 咋办
    liuzhiyong
        14
    liuzhiyong  
       2020-05-07 19:12:53 +08:00 via Android
    第一个,直接判断是否为零。话说这东西优先考虑语义清晰。
    Ncanback
        15
    Ncanback  
       2020-05-07 19:56:47 +08:00   ?? 1
    你这个说的....
    师爷,你来翻译翻译,什么叫做:判断数组 length 等于 0 ? 什么 tmd 叫做:判断数组 length 等于 0 ?
    newmlp
        16
    newmlp  
       2020-05-07 20:34:42 +08:00
    就他妈一个 if 判断,有啥性能优化啊,我艹
    weixiangzhe
        17
    weixiangzhe  
       2020-05-07 20:49:59 +08:00
    !arr.length
    JerryCha
        18
    JerryCha  
       2020-05-07 20:53:05 +08:00
    ((arr)=>arr.length===0)(arr)
    iamjoyhe
        19
    iamjoyhe  
       2020-05-07 20:56:40 +08:00
    这也能优雅?
    zfz001
        20
    zfz001  
       2020-05-07 21:00:30 +08:00
    arr.length === 0
    zfz001
        21
    zfz001  
       2020-05-07 21:01:02 +08:00
    花里胡哨?
    printese
        22
    printese  
       2020-05-07 21:19:02 +08:00 via iPhone
    (arr.length|0x0) == 0
    JohnLou
        23
    JohnLou  
       2020-05-07 21:36:14 +08:00
    屁事真多
    guiling
        24
    guiling  
       2020-05-07 21:39:20 +08:00
    @anjianshi 所以说忽略特殊情况啊,一般都是判断对象数组的

    怎么用看个人,要稳定&可读性的话还是按标准的来吧
    chenliangngng
        25
    chenliangngng  
    OP
       2020-05-08 11:12:25 +08:00 via Android
    @Mohanson 8#
    @Ncanback 15#
    哈哈,我笑了
    Wap
        26
    Wap  
       2020-05-08 14:51:45 +08:00
    !arr[0]
    jipf9046522
        27
    jipf9046522  
       2020-12-04 16:02:46 +08:00
    @newmlp 有点意思
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1219 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 17:12 · PVG 01:12 · LAX 10:12 · JFK 13:12
    Developed with CodeLauncher
    ? Do have faith in what you're doing.


    http://www.vxiaotou.com