S ohledem na tuto datovou strukturu:
var vehicles = [ [ "2011","Honda","Accord" ], [ "2010","Honda","Accord" ], ..... ];
Procházení jednotlivých vozidel existuje způsob, jak změnit přiřazení prvků pole k jednotlivým proměnným najednou, něco jako:
for (i = 0; i < vehicles.length; i++) { var(year,make,model) = vehicles[i]; // doesn't work ..... }
… Snažím se vyhnout tomu, abych dělal:
for (i = 0; i < vehicles.length; i++) { var year = vehicles[i][0]; var make = vehicles[i][1]; var model = vehicles[i][2]; ..... }
Jen jsem zvědavý, protože tento typ věcí je k dispozici v jiných programovacích jazycích. Díky!
Odpověď
Nyní je to možné pomocí ES6 Array Destructuring.
Jako z Dokumentů:
Syntaxe destrukčního přiřazení je výraz JavaScriptu, který umožňuje rozbalit hodnoty z polí nebo vlastnosti z objektů do odlišných proměnných.
Zvažte následující příklad:
let [a, b, c] = [10, 20, 30]; console.log(a); // output => 10 console.log(b); // output => 20 console.log(c); // output => 30
Stejně jako u vašich dat .forEach()
metodu lze také použít pro iteraci přes prvky pole spolu s Array Destructuring:
let vehicles = [ [ "2011","Honda","Accord" ], [ "2010","Honda","Accord" ] ]; vehicles.forEach(([year, make, model], index) => { // ... your code here ... console.log(`${year}, ${make}, ${model}, ${index}`); });
Odkazy:
Array Destructuring
Array.prototype.forEach()
Arrow Functions
Template Literals