在 JavaScript 中添加两个串联的 JSON 值

Adding two concatenated JSON values in JavaScript

尝试对 JSON 文件中的两个串联值求和并将它们添加到 HTML Table:

我正在努力思考如何将 value.name.wins 与 value.name.loss 相加,并使总数显示在 HTML table td 插槽中。它们是 JSON 文件中的数字,但只是将它们加起来等于 24,而它应该是 6。是否需要一个全新的函数来实现这个总和?

<script>
    $(document).ready(function(){
    $.getJSON("managers.json", function(data) {
        var managers_data = "";
        $.each(data, function(key, value) {
            managers_data += "<tr class='test'>";
            managers_data += '<td>' + value.name.wins+ +value.name.loss+ '</td>';
            });
            $('#managers_table').append(managers_data);
        });
    });
</script>
    [
        {
            "name" : {
                "wins": 2,
                "loss": 4
            }
        }
     ]

你在拼接一个字符串,所以2coerced变成一个字符串,加到<td>的末尾,然后4被强制变成一个字符串并添加到 <td>2 的末尾,等等...

如果您想要它们的总和,请在连接之前计算它。

const wins = 2;
const loss = 4;

console.log('<td>' + wins + loss + '</td>');
console.log('<td>' + (wins + loss) + '</td>');

使用括号: 而不是

'<td>' + value.name.wins+ +value.name.loss+ '</td>'

做:

'<td>' + ((+value.name.wins)+(+value.name.loss))+ '</td>'

或者干脆 Template literals:

`<td>${(+value.name.wins)+(+value.name.loss)}</td>`

这应该有效:

<script>
    $(document).ready(function(){
    $.getJSON("managers.json", function(data) {
        var managers_data = "";
        $.each(data, function(key, value) {
            managers_data += "<tr class='test'>";
            managers_data += `<td>${(value.name.wins + value.name.loss)}</td>`;
            });
            $('#managers_table').append(managers_data);
        });
    });
</script>