从复杂对象中解构提取指定属性 能否通过嵌套解构一行实现
嵌套解构一行实现方案
你可以直接在map回调的入参位置对单个drink对象做解构,配合箭头函数隐式返回对象,整行实现需求:
// 如果你需要最终对象的属性名为id、name const arrDrinks = (await [api request]).drinks.map(({ idDrink: id, strDrink: name }) => ({ id, name }))
如果不需要重命名属性,保留原接口返回的idDrink、strDrink作为属性名,写法可以更简单:
const arrDrinks = (await [api request]).drinks.map(({ idDrink, strDrink }) => ({ idDrink, strDrink }))
逻辑说明
- 省略了单独解构返回对象取
drinks的步骤,拿到接口响应后直接读取drinks属性调用map map回调的入参位置直接对每个饮品对象做解构,按需取出idDrink和strDrink,支持自定义重命名属性- 箭头函数用小括号包裹对象字面量,实现隐式返回,无需写
return和函数体大括号
补充说明:你之前给出的代码存在语法错误,对象字面量中不能直接写
drinkObj.idDrink作为键,要么显式写id: drinkObj.idDrink形式的键值对,要么先把值取为变量后用对象简写语法。
内容的提问来源于stack exchange,提问作者klondike
相关产品推荐
相关产品推荐

