JavaScript中的解构1.7

Jus*_*mas 5 javascript clojure destructuring

JavaScript 1.7允许解构:

[a, b] = [1, 2] // var a = 1, b = 2;
Run Code Online (Sandbox Code Playgroud)

有没有办法让阵列的其余部分像Clojure一样

(let [[head & xs] [1 2 3]] (print head xs)) ; would print: 1 [2 3]
Run Code Online (Sandbox Code Playgroud)

蟒蛇

a, b* = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

参考:https: //developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/1.7#Using_JavaScript_1.7

Ber*_*rgi 5

有没有办法获得阵列的其余部分并进入解构分配?

我不这么认为.自FF16以来,扩展运算符似乎得到了阵列文字的支持,但和声提议尚未涵盖解构赋值.如果确实如此,它看起来就像

[a, ...b] = [1, 2, 3];
Run Code Online (Sandbox Code Playgroud)

更新:ES6支持这种语法,称为数组解构模式中的"rest元素".

所以在那之前,你需要使用辅助函数:

function deCons(arr) {
    return [arr[0], arr.slice(1)];
}
[a, b] = deCons([1,2,3]);
Run Code Online (Sandbox Code Playgroud)