Как правильно использовать функции стрелок, чтобы эта функция выводила - PullRequest
0 голосов
/ 04 июня 2019

Я не понимаю, как заставить этот тип функции стрелок работать

Вывод функции pop должен быть следующим: {say: «sticks», поле: «awoo»} С помощью input console.log (pop ({say: "sticks"}));

Я пытался установить эквивалентность = (addObj) безрезультатно

let pop = (obj) => obj.say=="sticks" ? {field:"awoo"} : {field:"condensation"} => (addObj) => Object.assign(addObj,obj)

console.log(pop({say:"sticks"}));
console.log(pop({say:"dips"}));

/ Users / pharris / тест / app.js: 3

let pop = (obj) => obj.say=="sticks" ? {field:"awoo"} : {field:"condensation"} = (addObj) => Object.assign(addObj,obj)

Я получил эти сообщения об ошибках

SyntaxError: недопустимая цель назначения деструктурирования в новом скрипте (vm.js: 84: 7)

SyntaxError: неожиданная строка

Ответы [ 2 ]

0 голосов
/ 04 июня 2019

То, что вы пытаетесь достичь, это функция карри.В приведенной ниже программе он вернет требуемый вывод, а также назначит объект, который был передан с этим результатом ,

let result = {};

let pop = (obj) => {
  obj.field = obj.say=="sticks" ? "awoo" : "condensation";return (addObj) => Object.assign(addObj,obj)};

console.log(pop({say: 'sticks'})(result));
console.log(result);

Таким образом, объект result назначается со значениями obj .

0 голосов
/ 04 июня 2019

const pop = (obj) => 
  ({ say: obj.say, field: obj.say === 'sticks' ? 'awoo' : 'condensation' });

console.log(pop({say: 'sticks' }));
console.log(pop({say:"dips"}));
...