能否用解构赋值处理对象数组?如何一行提取对象子集字段?
解构对象数组的简洁写法
给定初始代码:
const db = {players: [{elo:3}, {elo:4}]}
常规数组解构可以拿到整个玩家对象:
const [white, black] = db.players
如果只想提取elo字段,可以这样写:
const [{elo:elo1}, {elo:elo2}] = db.players
你尝试的两种写法都存在语法问题:
// 语法错误,不符合解构语法规则 const [white:{elo}, black:{elo}] = db.players
// 语法错误,解构逻辑颠倒 const [{elo}:white, {elo}:black] = db.players
可行的简洁写法
可以在一行代码内同时拿到完整对象和指定字段,利用对象扩展运算符结合解构实现:
const [{ ...white, elo: elo1 }, { ...black, elo: elo2 }] = db.players
执行后:
white等于{elo:3},elo1等于3black等于{elo:4},elo2等于4
这种写法通过...white将当前数组元素的所有属性赋值给white,同时单独提取elo字段并重命名为elo1,一行代码就完成了两种需求的解构。
内容的提问来源于stack exchange,提问作者Jeff Lowery
相关产品推荐
相关产品推荐

