JavaScript是否支持类似Clojure :as的数组解构完整绑定?
JavaScript数组解构的整体绑定方法
JavaScript没有Clojure里:as那种专门的关键字,能直接在数组解构时绑定整个数组,但不用非得分步操作,有更简洁的写法。
比如你可以这么写:
const queue = [[1, 2]]; let pos; const [x, y] = pos = queue.shift();
跑完这段代码,x是1,y是2,pos就是[1,2],一步就完成了解构元素和绑定整个数组的操作。
要是不想提前声明pos,也能通过对象解构结合数组转换实现,但这种方式有点啰嗦:
const queue = [[1, 2]]; const { 0: x, 1: y, [Symbol.iterator]: iter } = queue.shift(); const pos = Array.from(iter);
相比之下第一种写法更直观好用。
当然你一开始给的分步写法也完全没问题,要是追求代码可读性,分步操作反而更清楚。
内容的提问来源于stack exchange,提问作者user2609980
相关产品推荐
相关产品推荐

