Javascript 函数使用Json嵌套键进行迭代和算术运算
我需要创建一个函数来迭代json对象“菜单”,返回一些json嵌套键。使用其中三个键,我需要实现一些简单的算术运算,如下所示: 首先我需要把所有的Javascript 函数使用Json嵌套键进行迭代和算术运算,javascript,json,vuejs2,Javascript,Json,Vuejs2,我需要创建一个函数来迭代json对象“菜单”,返回一些json嵌套键。使用其中三个键,我需要实现一些简单的算术运算,如下所示: 首先我需要把所有的土豆,然后我应该把所有的西红柿乘以这个牛肉,然后把结果除以胡萝卜。请注意,所有键都等于数字,因此计算类似于:(8*2.083488+40*1.5)/(180+180) 注意我的对象是一个计算属性,应该显示在vue模板中(但我认为这实际上对我来说不是最重要的事情) 提前谢谢,如果你需要更多的解释,我会在你身边 以下是我的功能: myFunc: fu
土豆
,然后我应该把所有的西红柿
乘以这个牛肉
,然后把结果除以胡萝卜
。请注意,所有键都等于数字,因此计算类似于:(8*2.083488+40*1.5)/(180+180)
注意我的对象是一个计算属性,应该显示在vue模板中(但我认为这实际上对我来说不是最重要的事情)
提前谢谢,如果你需要更多的解释,我会在你身边
以下是我的功能:
myFunc: function() {
var array = JSON.parse(totalMenu);
array.forEach(function(object) {
console.log(object.carrots);
});
}
以下是JSON(包含在totalMenu对象中):
请注意,JSON不是完全有效的:键
foo54
是重复的(键必须是唯一的)。此外,这似乎是一个X-Y问题:为什么JSON输出会因为所有不同类型的嵌套级别而如此混乱?一个更合适的解决方案是:(1)修复JSON输出,并在一定程度上使其平坦;(2)在VueJS解析器中找到正确的逻辑。@Terry ahright这是我在为示例替换它们键时犯的错误,我更新了我的post@Terry根据的规范,它表示“一个对象是一组无序的名称/值对”,这意味着只要值不同,它就是有效集,因此也是有效集JSON@Ferrybig他在同一级别两次声明了同一个键——尽管规范没有提到是否允许使用唯一键,但大多数实现都会在解析后保留最后一个键值对,例如var x={“foo54”:123,“foo54”:“lorem”}
如果调用x['foo54']
,您将获得lorem
。查看编辑历史记录,您将看到可能出现的错误。然而,这与他手头的问题无关:如果这是他真正的JSON输出,那么这不仅仅是一个提示。谢谢各位,我的问题呢?
{
"foo32":[
{
"dates":[
{
"date":"2018-04-02",
"foo":[
{
"foo78":[
{
"fooId":1
}
],
"foo54":2.636000,
"beef":2.083488,
"foo09":0,
"foo":"",
"potatoes":8,
"foo90":0,
"foo55":0,
"fooLabel":"360 cheese nana "
}
]
},
{
"date":"2018-04-03",
"fooReceipe":[
{
"foo65":0,
"fooID":"FX0000010000984",
"foo21":0,
"foo74":1,
"foo75":[
{
"foo89":"NOR",
"foo67":1
}
],
"foo34":2.636000,
"beef":1.50,
"foo58":0,
"foo5":"",
"potatoes":40,
"foo2":0,
"foo":0,
"familleLabel":"Plate for nowhere "
}
]
}
],
"familyLabel":"Starter",
"fammilyreceipe":13,
"family":7
}
],
"foo23":1002,
"totalfoo":[
{
"foo4":0,
"foo2":"2018-04-02",
"foo":0,
"carrots":180
},
{
"foo3":0,
"foo2":"2018-04-03",
"foo":0,
"carrots":180
}
]
}