Можно ли использовать переменную для деструктуры объекта? - PullRequest
4 голосов
/ 13 июня 2019

Я недавно ответил на вопрос с этим кодом в качестве ответа:

var jobs= [
  {"startDate": "5/2017", "endDate": null, "isCurrent": true, "seniority": "Senior",},
  {"startDate": "5/2013", "endDate": "5/2019", "isCurrent": false, "seniority": "Junior"}
]

// Answer
const findObject = (obj, prop, value) => obj.filter(obj => obj[prop] === value)
console.log(findObject(jobs, 'seniority', 'Senior'))

Я пытался деструктурировать объект в фильтре следующим образом:

const findObject = (obj, prop, value) => obj.filter(({[prop]}) => prop === value)

Но закончился этой ошибкой:

Uncaught SyntaxError: неожиданный токен}

Можно ли деструктурировать объект с именем переменной (или в этом случае параметра)?

1 Ответ

7 голосов
/ 13 июня 2019

Можно взять имена вычисляемых свойств и новую переменную для значения с шаблоном назначения свойств объекта [YDKJS: ES6 & Beyond] .

const findObject = (obj, prop, value) => obj.filter(({ [prop]: v }) => v === value)

var jobs = [{ startDate: "5/2017", endDate: null, isCurrent: true, seniority: "Senior" }, { startDate: "5/2013", endDate: "5/2019", isCurrent: false, seniority: "Junior" }];

console.log(findObject(jobs, 'seniority', 'Senior'));
...