在vue中,如果输入数组是['s1':{"s1":111},'s2':{"s2":222},'s3':{"s3":333}] 怎么变成[{"s1":111,"s2":222,"s3":333}]的形式
时间: 2023-03-25 07:03:08 浏览: 120
详解vue中v-bind:style效果的自定义指令
可以使用 JavaScript 中的 Object.values() 方法将对象的值转换为数组,然后使用数组的 reduce() 方法将所有对象合并为一个对象,最后使用 Object.entries() 方法将对象转换为数组即可。具体代码如下:
const arr = [{'s1':{"s1":111},'s2':{"s2":222},'s3':{"s3":333}}];
const result = Object.entries(arr.reduce((acc, cur) => {
Object.values(cur).forEach(obj => {
Object.entries(obj).forEach(([key, value]) => {
acc[key] = acc[key] || {};
acc[key][key] = value;
});
});
return acc;
}, {})).map(([key, value]) => ({ [key]: value }));
console.log(result); // [{"s1":111,"s2":222,"s3":333}]
阅读全文