javascript - 动态生成json属性值

标签 javascript arrays json dynamic

我有一个如下所示的 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/

相关文章:

Javascript 事件和 css

javascript - 在自动完成中使用 Google Maps Places API; API 不工作

php - json_encode() 是否可以防止 SQL 注入(inject)?

c# - 复杂数据模型和json.net序列化问题

javascript - 正则表达式匹配括号之间的内容

javascript - 如何使用 React 从 JSON 对象加载图像?

javascript - 飞到购物车效果 - 通用图像

javascript - 在 VueJs 中,父路径会自动从 URL 中删除

c# - 将通用字符串列表从处理程序返回到 JS 数组

arrays - Swift4 initWithArray 等价物