代码之家  ›  专栏  ›  技术社区  ›  user2609980

将完整数组分配给析构函数变量

  •  2
  • user2609980  · 技术社区  · 2 年前

    在Clojure析构函数中,还可以使用 :as ,在Javascript中有类似的可能吗?

    例如

    const queue = [[1, 2]];
    const [x, y :as pos] = queue.shift();
    

    哪里 x 将是1, y 将是2并且 pos 将是 [1, 2] ?

    或者需要额外的中间步骤吗,比如

    const queue = [[1, 2]];
    const pos = queue.shift();
    const [x, y] = pos;
    
    1 回复  |  直到 2 年前
        1
  •  2
  •   adiga    2 年前

    在析构函数过程中,不能同时获取父属性和嵌套属性。

    为了可读性,我会单独做

    const queue = [ [1, 2] ],
          pos = queue.shift(),
          [x, y] = pos;
    

    但是,可以在一行中完成。如果像对象一样破坏数组。获取 0 属性设置为变量,并销毁嵌套数组

    const queue = [ [1, 2] ];
    
    const { 0: pos, 0: [x, y] } = queue
    
    console.log(x, y)
    console.log(pos)