Я нахожусь в процессе создания класса JavaScript, который обрабатывает маршрутизацию/хеширование.
Мне интересно, есть ли способ разделить строку window.location.hash на набор аргументов для передачи другой функции.
Пример хеша:
var hash = "#some/place?id=42&&name=Brian";
Я могу, конечно, разбить строку и получить аргументы и их значения, но как мне передать их функции, аналогичной (с учетом предыдущего хэша), вызывающей:
// ID, NAME
someFunction(42, "Brian");
Мы должны принять во внимание, что мы не знаем точное количество аргументов, с которыми будем иметь дело. Все, что мы знаем, это то, что аргументы в хеше находятся в том же порядке, что и функция; например: учитывая предыдущий пример, наша функция получит: сначала ID, затем NAME, затем любые другие аргументы, которые мы передаем.
So...
var hash = "#some/place?id=42&&name=Brian";
// ID, NAME
someFunction(42, "Brian");
Or...
var hash = "#some/place?id=42&&age=33&&name=Brian";
// ID, AGE, NAME
someFunction(42, 33, "Brian");
так далее...
[{id: 42}, {age: 33}, {name: 'brian'}]
- person IrkenInvader   schedule 08.04.2016