aryeh
@aryeh
Молод (душой) и приятен в общении :-)

Как правильно написать функцию с произвольным числом аргументов?

Есть функция принимающая до 5 аргументов и использующая последний аргумент как значение, а все первые как индексы в массиве.
function setParam() {
    switch(arguments.length) {
    case 2:
      myStorage[arguments[0]]=arguments[1];
      break;
    case 3:
      myStorage[arguments[0]][arguments[1]]=arguments[2];
      break;
    case 4:
      myStorage[arguments[0]][arguments[1]][arguments[2]]=arguments[3];
      break;
    case 5:
      myStorage[arguments[0]][arguments[1]][arguments[2]][arguments[3]]=arguments[4];
      break;
    default:
      throw new Error('Error!');
    }
  };

Как правильно и красиво переписать её для любого количества аргументов?
  • Вопрос задан
  • 108 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
function setParam(...args) {
  const [ key, val ] = args.splice(-2);
  args.reduce((acc, n) => acc[n] = acc[n] || {}, myStorage)[key] = val;
}
Ответ написан
yarkov
@yarkov Куратор тега JavaScript
https://github.com/yarkovaleksei/toster-extension
function setParam(args = {})
И передавать один аргумент-объект с произвольными свойствами, а не гору аргументов
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы