V minulosti jsme používali různé hacky ke konverzi objektů podobných Array (jako arguments
a NodeList
) do skutečného pole. Několik takových hacků můžete vidět zde:
- Převést argumenty na Array
- Převést NodeList na Array
V zásadě bychom použili Array.prototype.slice.call()
na arguments
nebo NodeList
provést konverzi. V dnešní době existuje přímočařejší řešení převodu jednoho typu na jiný.
Převést NodeList
na Array
var divs = Array.from(document.querySelectorAll('div')); // Array[232] (every DIV on the page)
Převést arguments
na Array
function something() { var args = Array.from(arguments); // Array['yes', 1, {}] } something('yes', 1, {});
Převést String
na Array
Array.from('JavaScript'); // Same as 'JavaScript'.split('') // ["J", "a", "v", "a", "S", "c", "r", "i", "p", "t"]
Kód je mnohem čistší a nepotřebuje slice
hack!