JS 这几句能连一起写吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
coolair
V2EX    问与答

JS 这几句能连一起写吗?

  •  
  •   coolair 2022-07-21 10:37:00 +08:00 2287 次点击
    这是一个创建于 1180 天前的主题,其中的信息可能已经有所发展或是发生改变。
    const {a, b, c, d, e, f, g, h} = anObject let newObject = {a, b, c, d, e, f, g, h} callFunc({...newObject}) 

    因为 a, b, c, d, e, f, g, h 这几个变量很长,有没有好的写法?

    第 1 条附言    2022-07-21 11:20:12 +08:00
    lodash pick 好用,谢谢。
    17 条回复    2022-07-22 00:11:19 +08:00
    yunying
        1
    yunying  
       2022-07-21 10:38:22 +08:00
    callFunc({... anObject})
    coolair
        2
    coolair  
    OP
       2022-07-21 10:39:28 +08:00
    @yunying anObject 还有其他属性不需要的
    murmur
        3
    murmur  
       2022-07-21 10:40:10 +08:00
    const {
    aaaaaaaaaaaaaaaaaaaaaaa,
    bbbbbbbbbbbbbbbbbbbbbb,
    ccccccccccccccccccccccccccc,
    dddddddddddddddddddddd
    } = anObject
    mxT52CRuqR6o5
        4
    mxT52CRuqR6o5  
       2022-07-21 10:43:29 +08:00
    原生 js (感觉怎么样都要写很多)
    callFunc(Object.fromEntries(Object.entries(anObject).filter(([key])=>['a','b','c','d','e','f','g','h'].includes(key))))

    lodash 之类的工具库
    callFunc(_.pick(anObject,['a','b','c','d','e','f','g','h']))
    dumbass
        5
    dumbass  
       2022-07-21 10:44:02 +08:00
    @coolair #2 那就用别名吧
    ```js
    const { veryLongVariable: a, ... } = obj
    ```
    yunying
        6
    yunying  
       2022-07-21 10:44:05 +08:00
    @coolair 看下 loadash 有没有用得上的函数吧。
    acthtml
        7
    acthtml  
       2022-07-21 10:44:12 +08:00   1
    lodash pick function

    const newObj = _.pick(obj, [keyA, keyB])
    Liam1997
        8
    Liam1997  
       2022-07-21 10:45:25 +08:00
    lodash pick
    rrfeng
        9
    rrfeng  
       2022-07-21 10:48:11 +08:00
    可以反过来写,把不要的列出来?
    shyling
        10
    shyling  
       2022-07-21 10:54:30 +08:00
    没懂意思。。。一般来说 callFunc 不怕 object 多参数的吧?
    Vegetable
        11
    Vegetable  
       2022-07-21 10:57:44 +08:00 div class="sep5">
    你参数是一个 obj ,他参数多就多呗。你这么写也做不到 deepcopy ,...都多余
    libook
        12
    libook  
       2022-07-21 10:58:00 +08:00   1
    换行写就行,挺清晰的。

    因为 git 是按行检查的,所以为了在增删改选取属性时能让 git 记录精确一些,我习惯在这种情况下换行写,如:

    const {
    a,
    b,
    } = anObject;

    如果想加个 c 只需要加一行,git 提交记录只会显示添加了一行 c ,不会显示整行有修改,这样更清晰一些。
    Vegetable
        13
    Vegetable  
       2022-07-21 10:58:18 +08:00
    *属性
    lneoi
        14
    lneoi  
       2022-07-21 11:28:22 +08:00
    有种不太好看的写法,如果 anObject 中不需要的元素比较少,比如 f 后面只有 x,y 两个不要,可以写 const { x, y, ...newObject } = anObject
    然后取 newObject ,xy 没用到会有提示,用了什么数据也不明确。
    FrankFang128
        15
    FrankFang128  
       2022-07-21 15:17:46 +08:00
    lodash.pick(
    PrtScScrLk
        16
    PrtScScrLk  
       2022-07-21 16:50:39 +08:00
    说一个 pick 的反向操作 omit , 从对象里去掉一些属性,比直接 delete 好用点儿。
    aleen42
        17
    aleen42  
       2022-07-22 00:11:19 +08:00 via Android   1
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3263 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 11:44 PVG 19:44 LAX 04:44 JFK 07:44
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86