vue2中拿到数据格式如下 conditionList zjId 12b945a22de56e7e6406b5070e71fb76 zjName 中级 zjId 12b945a22de56e7e6406b5070e71fb75 zjName 高级
你可以使用Vue的计算属性来实现这个逻辑。首先,你需要定义一个计算属性来处理数据的组合展示。在计算属性中,你可以使用map()方法来遍历原始数据,并根据generationType的值进行判断和处理。
下面是一个示例代码:
computed: {
processedData() {
// 遍历原始数据
return this.data.map(item => {
// 判断generationType的值
if (item.generationType === '1') {
// 多加一条数据,将conditionList的数据中的name字段拼接到该条数据中的conditionList数组中
const combinedList = item.conditionList.flatMap(condition => {
return this.data
.filter(i => i.generationType === '2')
.flatMap(i => i.conditionList.map(c => ({
zjId: condition.zjId,
zjName: `${condition.zjName}-${c.zjName}`
})));
});
// 返回处理后的数据
return {
...item,
conditionList: [...item.conditionList, ...combinedList]
};
} else {
return item;
}
});
}
}
在上面的代码中,processedData是一个计算属性,它会返回处理后的数据。在计算属性中,我们使用map()方法来遍历原始数据,并根据generationType的值进行判断和处理。如果generationType的值为1,我们使用flatMap()方法来生成新的combinedList,将其他generationType为2的数据中的conditionList的数据拼接到该条数据中的conditionList数组中。最后,返回处理后的数据。
你可以在Vue模板中使用processedData来展示处理后的数据:
<div v-for="item in processedData" :key="item.dimension">
<p>dimension: {{ item.dimension }}</p>
<p>generationType: {{ item.generationType }}</p>
<ul>
<li v-for="condition in item.conditionList" :key="condition.zjId">
zjId: {{ condition.zjId }}, zjName: {{ condition.zjName }}
</li>
</ul>
</div>
在上面的模板中,我们使用v-for指令来遍历processedData中的每一项,并展示对应的字段。
请注意,上面的代码仅为示例,你需要根据实际情况进行调整
原文地址: http://www.cveoy.top/t/topic/ishx 著作权归作者所有。请勿转载和采集!