разделить один аргумент ф-ци на два

209
16 декабря 2019, 10:40

знакомый задал задачу, как сделать следующее:

sum (q, e) = sum (q)(e);

UPDATE функция должна принимать не ограниченное количество аргументов

Answer 1

Для принятия списка параметров, достаточно добавить возможность их обрабатывать, например с помощью функции reduce

function sum() { 
  function add(a, b) { 
    return a + b; 
  }; 
 
  var num = [].reduce.call(arguments, add); 
 
  function inner() { 
    return sum.apply(this, [].concat.apply([num], arguments)); 
  } 
  inner.toString = inner.valueOf = inner.toJSON = function() { 
    return num; 
  } 
  return inner; 
} 
 
function o(prepend, val){ 
  document.getElementById('res').innerHTML += (prepend? (prepend+": "):"")+(typeof val == 'string'? val : JSON.stringify(val)) + '<br />'; 
} 
 
o('sum(1,2,3)(4,5,6)(7)',sum(1,2,3)(4,5,6)(7)); 
o('sum(1,2,3)',sum(1,2,3)); 
o('sum(1)(2,3)', sum(1)(2,3)); 
o('sum(1,2)(3)',sum(1,2)(3)); 
o('sum(1,2)(3)+"4"',sum(1,2)(3)+"4"); 
o('sum(1)(2,3)+4',sum(1)(2,3)+4); //10
<div id="res"></div>

Answer 2

Вопрос не вполне понятен, но, возможно, имеется в виду нечто вроде такого?

var sum = function(q) {
   return function(e) { 
      return q + e;
   }
}
READ ALSO
Повторение html блока при обработке JSON

Повторение html блока при обработке JSON

Получаю данные о пользователях в JSON

237
Изменить Orientation установленную в manifest

Изменить Orientation установленную в manifest

Есть ли какой-нибудь способ изменить ориентацию экрана (включить её), если в manifestjson жестко прописана например портретная ориентация

231
как в js получить ссылку с помощью data-url=&ldquo;&rdquo;

как в js получить ссылку с помощью data-url=“”

как в js получить ссылку с помощью data-url=""

205