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 · 4533 次点击
    这是一个创建于 1668 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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   ·   实用小工具   ·   2600 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:33 · PVG 14:33 · LAX 22:33 · JFK 01:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.