const arr = ['x', 'y', 'z];
// or
const str = "x,y,z";
return ( тут ) => {
return x + y + z;
};
}
вот вопрос: могу ли я как-то сделать так, чтобы буквы которые хранятся либо в массиве, либо в строке стали аргументами моей стрелочной функции?
я пробовал eval, но тогда стрелочная функция не работает
или это нереально?
я в вопрос не въехал вы можете просто скок угодно аргументов передать же или шо именно хотите?
function uncurry(f) { function isLetter(c) { return c.toLowerCase() != c.toUpperCase(); } const array = f.toString().split('=>'); const last = array[array.length - 1]; const vars = [...last].filter(e => { if (isLetter(e)) return e; }); const varsStr = vars.toString(); return () => { return eval(last); }; } видите?! в last хранится строка, которое eval будет обрабатывать. если там строка 'x+y+z' то, оно превратит это в выражение. но! мне теперь надо эти x,y,z передать на вход как-то.... я не могу это захаркодить. т.к. каждый раз входные данные разные. сейчас переменные называются так, а в другой раз будут a, b, c
шо вы вообще получить хотите, шо за муть? хд
uncurry, коллега, uncurry
нужно превратить функцию которая вычисляет какое-то выражение на основе замыканий и запускается по типу: add(1)(2)(3) в функцию, которая принимает все аргументы разом addv2(1, 2, 3)
а, так соберите всё рестом и потом пихните в цикле, самый простой варик
собрать чем? что погуглить. не понимаю
const addv2 = (...args) => args.reduce((acc, arg) => acc(arg), add);
Обсуждают сегодня