Javascript 从JSON子对象计算总和
我从VueJs开始,遇到了麻烦。我试图从JSON子对象中求和,但它不起作用。我有一个全局对象(Data)结束子对象(achat)。我想计算属于keyinitial的值的总和。我正在尝试多种方法,但都不起作用。我不会说英语。谢谢你的理解 我想要的结果是:举例说明Javascript 从JSON子对象计算总和,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我从VueJs开始,遇到了麻烦。我试图从JSON子对象中求和,但它不起作用。我有一个全局对象(Data)结束子对象(achat)。我想计算属于keyinitial的值的总和。我正在尝试多种方法,但都不起作用。我不会说英语。谢谢你的理解 我想要的结果是:举例说明 { "data": [ { "id": 1, "achat": [ { "fournisse
{
"data": [
{
"id": 1,
"achat": [
{
"fournisseur": "aze",
"initial": "12",
"supp": "0"
}
]
},
{
"id": 2,
"achat": [
{
"fournisseur": "paul",
"initial": "123",
"supp": "100"
}
]
},
{
"id": 3,
"achat": [
{
"fournisseur": "Kian Crist",
"initial": "12",
"supp": "0"
}
]
},
{
"id": 4,
"achat": [
{
"fournisseur": "Kian Crist",
"initial": "0",
"supp": "0"
}
]
},
{
"id": 5,
"achat": [
{
"fournisseur": "LOUBATA",
"initial": "12345098",
"supp": "123400"
}
]
},
{
"id": 6,
"achat": [
{
"fournisseur": "Douze Pixels",
"initial": "10000000",
"supp": "300000"
}
]
},
{
"id": 7,
"achat": [
{
"fournisseur": "azer",
"initial": "1234",
"supp": "0"
}
]
}
]
}
total_depenses: function () {
let total = [];
Object.entries (this.data) .forEach (([key, val]) => {
total.push (val.initial)
});
return total.reduce (function (total, num) {return total + num});
}
这里有一种方法。您可以过滤掉所有
achat
数组,然后合并它。然后,你可以遍历所有元素并求和
const数据对象={
“数据”:[
{
“id”:1,
“阿查特”:[
{
“Fourniseur”:“aze”,
“首字母”:“12”,
“支持”:“0”
}
]
},
{
“id”:2,
“阿查特”:[
{
“Fourniseur”:“paul”,
“首字母”:“123”,
“补充”:“100”
}
]
},
{
“id”:3,
“阿查特”:[
{
“Fourniseur”:“Kian Crist”,
“首字母”:“12”,
“支持”:“0”
}
]
},
{
“id”:4,
“阿查特”:[
{
“Fourniseur”:“Kian Crist”,
“首字母”:“0”,
“支持”:“0”
}
]
},
{
“id”:5,
“阿查特”:[
{
“福尼瑟”:“卢巴塔”,
“首字母”:“12345098”,
“补充”:“123400”
}
]
},
{
“id”:6,
“阿查特”:[
{
“Fourniseur”:“涂抹像素”,
“首字母”:“10000000”,
“补充”:“300000”
}
]
},
{
“id”:7,
“阿查特”:[
{
“福尼瑟”:“阿泽”,
“首字母”:“1234”,
“支持”:“0”
}
]
}
]
}
const returnSum=数据=>{
返回[]。concat.apply([],
data.map(el=>el.achat))
.reduce((acc,el)=>acc++el.initial,0)
}
log(returnSum(dataObject.data))
这里有一种方法。您可以过滤掉所有achat
数组,然后合并它。然后,你可以遍历所有元素并求和
const数据对象={
“数据”:[
{
“id”:1,
“阿查特”:[
{
“Fourniseur”:“aze”,
“首字母”:“12”,
“支持”:“0”
}
]
},
{
“id”:2,
“阿查特”:[
{
“Fourniseur”:“paul”,
“首字母”:“123”,
“补充”:“100”
}
]
},
{
“id”:3,
“阿查特”:[
{
“Fourniseur”:“Kian Crist”,
“首字母”:“12”,
“支持”:“0”
}
]
},
{
“id”:4,
“阿查特”:[
{
“Fourniseur”:“Kian Crist”,
“首字母”:“0”,
“支持”:“0”
}
]
},
{
“id”:5,
“阿查特”:[
{
“福尼瑟”:“卢巴塔”,
“首字母”:“12345098”,
“补充”:“123400”
}
]
},
{
“id”:6,
“阿查特”:[
{
“Fourniseur”:“涂抹像素”,
“首字母”:“10000000”,
“补充”:“300000”
}
]
},
{
“id”:7,
“阿查特”:[
{
“福尼瑟”:“阿泽”,
“首字母”:“1234”,
“支持”:“0”
}
]
}
]
}
const returnSum=数据=>{
返回[]。concat.apply([],
data.map(el=>el.achat))
.reduce((acc,el)=>acc++el.initial,0)
}
console.log(returnSum(dataObject.data))
let info={
“数据”:[
{
“id”:1,
“阿查特”:[
{
“Fourniseur”:“aze”,
“首字母”:“12”,
“支持”:“0”
}
]
},
{
“id”:2,
“阿查特”:[
{
“Fourniseur”:“paul”,
“首字母”:“123”,
“补充”:“100”
}
]
},
{
“id”:3,
“阿查特”:[
{
“Fourniseur”:“Kian Crist”,
“首字母”:“12”,
“支持”:“0”
}
]
},
{
“id”:4,
“阿查特”:[
{
“Fourniseur”:“Kian Crist”,
“首字母”:“0”,
“支持”:“0”
}
]
},
{
“id”:5,
“阿查特”:[
{
“福尼瑟”:“卢巴塔”,
“首字母”:“12345098”,
“补充”:“123400”
}
]
},
{
“id”:6,
“阿查特”:[
{
“Fourniseur”:“涂抹像素”,
“首字母”:“10000000”,
“补充”:“300000”
}
]
const sum = info.data.map(x => x.achat) // Extract only the achat field
.flat() // Flatten the array Eg: [[1], [2], [3]] --> [1, 2, 3]
.map(x => +x.initial) // Extract the initial field ("+" is to convert string to integer)
.reduce((e, f) => e + f); // Calculate the sum
const sum = dataObject.data
.map(x => parseInt(x.achat[0].initial))
.reduce((y, z) => y + z)
console.log(sum)