是否可以使用变量来解构对象?

我最近用这段代码回答了一个问题作为答案:


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)

但最终出现了这个错误:

未捕获的语法错误:意外的令牌 }

是否可以使用变量(或在这种情况下为参数)名称来解构对象?


蝴蝶不菲
浏览 176回答 1
1回答

泛舟湖上清波郎朗

您可以使用对象属性分配模式 [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'));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript