如何将数组转换为不含0索引键的目标对象?
问题:将数组转换为无索引键的对象
现有数组结构:
"loanArray" : [ { "recordID" : "LKOCH123", "date" : "20221206", "productId" : "21023" } ]
使用Object.assign转换的代码:
let loanObj= Object.assign({}, loanArray)
转换后得到的对象:
"loanObj" : { "0": { "recordID" : "LKOCH123", "date" : "20221206", "productId" : "21023" } }
期望得到的结构:
"loanObj" : { "recordID" : "LKOCH123", "date" : "20221206", "productId" : "21023" }
解决方案
方法1:直接提取数组元素
如果数组仅包含目标对象,直接取索引0的元素即可:
let loanObj = loanArray[0];
方法2:使用展开运算符创建新对象
通过展开运算符将数组内对象的属性直接注入空对象,生成独立的新对象:
let loanObj = {...loanArray[0]};
方法3:修正Object.assign用法
Object.assign需要传入数组内的对象而非整个数组,以此合并属性到目标对象:
let loanObj = Object.assign({}, loanArray[0]);
若数组包含多个对象且需合并所有属性(后续对象会覆盖前面对象的同名属性),可使用以下写法:
// 展开运算符方式 let loanObj = {...loanArray[0], ...loanArray[1]}; // 通用合并方式(适用于任意长度数组) let loanObj = Object.assign({}, ...loanArray);
内容的提问来源于stack exchange,提问作者Mar1009
相关产品推荐
相关产品推荐

