vue将大对象转成数组并且数组里对象有对象名称,但是名称还是和之前都名称一样
时间: 2024-05-14 13:16:42 浏览: 9
,怎么做?
您可以使用Vue的computed属性来将大对象转换为数组,并在数组中的每个对象中包含对象名称。您需要使用Object.keys()方法来获取对象的名称。下面是示例代码:
```javascript
<template>
<div>
<div v-for="(item, index) in items" :key="index">
<h2>{{ item.name }}</h2>
<div v-for="(obj, key) in item" :key="key" v-if="key !== 'name'">
<p>{{ key }}: {{ obj }}</p>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
bigObject: {
obj1: {
name: "Object 1",
prop1: "value1",
prop2: "value2",
},
obj2: {
name: "Object 2",
prop1: "value1",
prop2: "value2",
},
},
};
},
computed: {
items() {
let items = [];
Object.keys(this.bigObject).forEach((key) => {
let item = { name: key };
Object.assign(item, this.bigObject[key]);
items.push(item);
});
return items;
},
},
};
</script>
```
在这个示例中,我们使用了computed属性来计算一个名为items的数组。这个数组包含了bigObject中每个对象的名称和属性。我们使用Object.keys()来获取bigObject中每个对象的名称,并将其作为items数组中每个对象的名称。我们然后将每个对象的属性添加到items对象中,然后将其推到items数组中。最后,我们在Vue模板中循环遍历items数组,并在每个对象上显示名称和属性。