gpt4 book ai didi

javascript - 动态生成json属性值

转载 作者:行者123 更新时间:2023-11-30 07:38:12 26 4
gpt4 key购买 nike

我有一个如下所示的 json 对象:

{
"critiquesAvg": 4.75: ,
"critiques":[
{
'author': 'John Does',
'comment': "I like it",
'stars' : 5
},
{
'author': 'Jacob Works',
'comment': "I like it too",
'stars' : 4.5
}
]
}

我需要通过平均 critiques 数组的 stars 属性值来动态计算 critiquesAvg 的值 (4.75)。

有人可以帮我吗?

编辑:抱歉,我遇到的实际问题如下:

var dealers = [{
"id", 1874
"critiquesAvg": 4.75 ,
"critiques":[
{
'author': 'John Does',
'comment': "I like it",
'stars' : 5
},
{
'author': 'Jacob Works',
'comment': "I like it too",
'stars' : 4.5
}
]
},
{
"id": 1345,
"critiquesAvg": 5 ,
"critiques":[
{
'author': 'John Does',
'comment': "I like it",
'stars' : 5
},
{
'author': 'Jacob Works',
'comment': "I like it too",
'stars' : 5
}
]
}
];

在这里,我想根据特定经销商数据的平均评论数动态计算 critiquesAvg 属性的值。

最佳答案

我会使用 reduce为此( fiddle here ):

var data = {
"critiquesAvg": 4.75,
"critiques":[
{
'author': 'John Does',
'comment': "I like it",
'stars' : 5
},
{
'author': 'Jacob Works',
'comment': "I like it too",
'stars' : 4.5
}
]
};

var sum = data.critiques.reduce(function(x, y) { return x.stars + y.stars });
var average = sum / data.critiques.length;

data.critiquesAvg = average;

至于更新的问题,您需要添加一个额外的循环,例如使用 forEach (更新 fiddle here ):

dealers.forEach(function(data) {
var sum = data.critiques.reduce(function(x, y) { return x.stars + y.stars });
var average = sum / data.critiques.length;

data.critiquesAvg = average;
});

关于javascript - 动态生成json属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25480585/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com