Dlaczego nie można używać operatora rozrzucania wiele razy?Korzystanie z operatora rozprzestrzeniania się wiele razy w javascript?
let arr = [[[1, 2, 3]]];
console.log(arr); // Array [ Array[1] ]
console.log(...arr); // Array [ Array[3] ]
console.log(...(...arr));
// SyntaxError: expected '=>' after argument list, got ')'
spodziewałbym:
console.log(...(...arr)); // Array [ 1, 2, 3 ]
'... (ARR)' działa. jest taki sam jak "... arr" – madox2
Zgodnie ze specyfikacją ES6, gdy napotkany jest operator rozprzestrzeniania, tworzony jest iterator z obiektu rozproszonego, który jest wynikiem oceny wyrażenia przypisania, które znajduje się w twoim przykładzie roboczym 'arr', np. '... arr'. Z 'console.log (... (... arr));' próbujesz przekazać operator rozprzestrzeniania + wyrażenie przypisania jako wyrażenie przypisania do innego operatora rozprzestrzeniania. Zobacz http://www.ecma-international.org/ecma-262/6.0/#sec-argument-lists – br3w5
Możesz chcieć wypróbować 'console.log (... []. Concat (... arr)) '(lub jakakolwiek inna funkcja' spłaszczania') – Bergi