JavaScript如何提取数组内首个对象属性合并到父对象中
解决方案
你之前的方法选型错误:push是数组实例方法,仅用于给数组追加元素,无法给普通对象添加属性;map用于遍历数组并返回映射后的新数组,不适用对象属性合并场景。
以下是两种可直接运行的实现:
生成新对象(不修改原始数据)
推荐用对象展开语法实现,注意属性书写顺序:先展开data数组首项的所有属性,再显式声明保留原data数组,即使首项中存在同名data字段,也能保证原数组不被覆盖。
const target = { ...data.data[0], data: data.data };
直接修改原对象
如果不需要保留原始对象结构,可以用Object.assign直接把首项属性合并到原对象上:
Object.assign(data, data.data[0]);
执行后原对象就是你需要的结构——由于你给出的数组成员中没有data同名属性,原有的数组字段会完整保留。
边界提示:如果
data.data可能为空数组,取[0]会得到undefined,展开undefined不会抛出异常,但不会新增任何属性,需要处理空场景的话可以提前加判空判断。
内容的提问来源于stack exchange,提问作者user18605090
相关产品推荐
相关产品推荐

