Vue JS组件中MySQL的嵌套JSON求和
这是JSON格式的MySQL 8的内容 MySQL字段“ticket_json”是json类型Vue JS组件中MySQL的嵌套JSON求和,mysql,json,vuejs2,Mysql,Json,Vuejs2,这是JSON格式的MySQL 8的内容 MySQL字段“ticket_json”是json类型 [{ "id": 1, "ticket_json": [{ "id": 1570801381559, "qty": 2, "name": "Cognac", "price": 1000 }, { "id": 1570801382391, "qty": 1, "name
[{
"id": 1,
"ticket_json": [{
"id": 1570801381559,
"qty": 2,
"name": "Cognac",
"price": 1000
}, {
"id": 1570801382391,
"qty": 1,
"name": "Jäger Bomb",
"price": 900
}, {
"id": 1570801386549,
"qty": 1,
"name": "VodK Ananas",
"price": 900
}],
"created_at": "2019-10-11 15:43:08",
"updated_at": "2019-10-11 15:43:08"
}, {
"id": 2,
"ticket_json": [{
"id": 1570830556370,
"qty": 1,
"name": "Peace & Love",
"price": 600
}, {
"id": 1570830560279,
"qty": 1,
"name": "Tonic",
"price": 600
}],
"created_at": "2019-10-11 23:49:22",
"updated_at": "2019-10-11 23:49:22"
}
}]
我检索存储的数据,方法如下:
getTickets() {
fetch('/api/path)
.then((response) => {
return response.json()
})
.then((data) => {
this.tickets = data;
})
.catch((error) => {
console.log(error);
})
}
我显示如下数据:
<div v-for="ticket in tickets">
{{ totalTicket }}
</div>
在循环中,我将显示每个对象的总和(totalTicket)(数量*价格)
问题,它在所有循环中显示相同的第一个结果
我对Javascript不是很熟悉。如果您能帮助我,谢谢您在
totalTicket
中循环查看数组的ALL元素,并计算ALL元素的总数
您还定义了两次var键
(两个用于循环),并定义了subItemsTotal
在第二个循环外和循环内,还定义了itemsTotal
在第一个循环外和第二个循环内
您必须创建一个方法,该方法接受一个值并计算总数
Html
你能在上面发布一个数据示例吗,因为MySQL 8支持简单的JSON到记录解析,并且可以在上面运行SUM..像这样?将
返回项移至总计代码>在forThanks Max之外,但当我这样做时,总是显示最后一个循环的结果:(
computed: {
totalTicket() {
var itemsTotal = 0;
for(var key in this.tickets) {
var item = this.tickets[key];
var subitems = item.ticket_json;
var subItemsTotal = 0;
for(var key in subitems) {
var subitem = subitems[key];
var subItemsTotal = subItemsTotal + ((subitem.la_qtt * subitem.le_tarif)/100);
};
var itemsTotal =+ subItemsTotal;
console.log(itemsTotal);
return itemsTotal;
};
}
},
<div v-for="ticket in tickets" :key="ticket.id">
For Ticket id {{ticket.id}} the Total is {{ totalSingle(ticket) }}</div>
</div>
methods: {
totalSingle(ticket) {
var itemsTotal = 0;
var subitems = ticket.ticket_json;
var subItemsTotal = 0;
for (var key in subitems) {
var subitem = subitems[key];
subItemsTotal = subItemsTotal + (subitem.qty * subitem.price) / 100;
}
itemsTotal += subItemsTotal;
return itemsTotal;
}
}