Javascript 从JSON子对象计算总和

Javascript 从JSON子对象计算总和,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我从VueJs开始,遇到了麻烦。我试图从JSON子对象中求和,但它不起作用。我有一个全局对象(Data)结束子对象(achat)。我想计算属于keyinitial的值的总和。我正在尝试多种方法,但都不起作用。我不会说英语。谢谢你的理解 我想要的结果是:举例说明 { "data": [ { "id": 1, "achat": [ { "fournisse

我从VueJs开始,遇到了麻烦。我试图从JSON子对象中求和,但它不起作用。我有一个全局对象(Data)结束子对象(achat)。我想计算属于keyinitial的值的总和。我正在尝试多种方法,但都不起作用。我不会说英语。谢谢你的理解

我想要的结果是:举例说明

{
    "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)