我有个数据是这样的。
const res = [
{
name: "张三",
power: "2",
week: [
{
action: "吃饭"
},
{
action: "睡觉"
}
],
end: "评语:死不足惜"
},
{
name: "李四",
power: "3",
week: [
{
action: "作死"
},
{
action: "大家"
}
],
end: "21asdasd"
},
]
代码:
<el-table :border="true" :data="res">
<el-table-column prop="name" label="姓名" width="180" />
<el-table-column prop="power" label="力量” width="180" />
<el-table-column :prop="x.name" :label="x.num" v-for="x in xx.week" width="180" />
<el-table-column prop="end" label="评价" width="180" />
</el-table>
这里由于书对象数组里面的子节点又是对象数组,不知道在el-table上绑定res值后,里面的el-table-column怎么拿到子节点的对象数组,也就是 xx.week。
使用table像渲染成这样,除了把数组扁平化,有没有其他方法。
| 姓名 | 力量 | 周一 | 周二 | 评价 |
|---|---|---|---|---|
| 张三 | 2 | 吃饭 | 睡觉 | 评语:死不足惜 |
| 李四 | 3 | 作死 | 大家 | 21asdasd |
回答:
有一个折中的属性可以使用:
https://element.eleme.io/#/zh-CN/component/table#table-column…
formatter 用来格式化内容 Function(row, column, cellValue, index)
处理结果如下:

代码如下:
<template>
<div class="hello">
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="name" label="name" width="180"> </el-table-column>
<el-table-column prop="power" label="power" width="180">
</el-table-column>
<el-table-column
prop="week"
label="week"
:formatter="formatter"
></el-table-column>
<el-table-column prop="end" label="end" width="180"> </el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: "HelloWorld",
data() {
return {
tableData: [
{
name: "张三",
power: "2",
end: "评语:死不足惜",
week: [
{
action: "吃饭",
},
{
action: "睡觉",
},
],
},
{
name: "李四",
power: "3",
week: [
{
action: "作死",
},
{
action: "大家",
},
],
end: "21asdasd",
},
],
};
},
methods: {
formatter(row, column) {
let actionList = [];
row.week.forEach((v) => {
actionList.push(v.action);
});
return actionList.join("|");
},
},
};
</script>