2015-06-28 2 views
3

Скажем, у меня есть массив массивов, например, так:Есть ли способ, которым я могу реструктурировать часть назначения деструктурирования?

var arrs = [ 
    [1, "foo", "bar", "baz"], 
    [2, "bar", "baz", "qux"], 
    [3, "baz", "qux", "thud"] 
]; 

Я хочу использовать назначение деструктурирующих ES6, чтобы получить первый элемент каждого массива в качестве индивидуальных переменного, и упакуйте остальные элементы, как другие массив. В псевдокоде:

for (let [first, *rest] of arrs) { // What is the proper way to do *rest? 
    console.log(first); // Should be a number 
    console.log(rest); // Should be an array of strings 
} 

Возможно ли это как можно?

ответ

5

Вот что делает ...:

for (let [first, ... rest] of arrs) { 
+0

Ах, не знал об этом синтаксисе. Это также работает для индексированных назначений деструктурирования? Что-то вроде '{id, ... rest} из {id: 1, some:" foo ", other:" bar ", properties:" baz "}'? –

+1

@Asad [да, он тоже работает для объектов] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment) – Pointy

+4

Обратите внимание на комментарий '// ES7' на объект. Это будет работать, если вы используете Babel, но это не в ES6. – loganfsmyth