如何在react中添加数组元素



我从一个api中获得一个等级数组,但当它试图添加它们以获得avarege时。它们被打印而不是添加。

这是来自api的数组

grades: (8) ["71", "81", "72", "92", "79", "82", "91", "90"]

我的代码

 student.grades.map((grades) => {
                      var avarge = 0;
                      avarge = avarge + grades;
                      return avarge;
                    })

输出

071081072092079082091090

字符串串联与数字加法。使用Number,您可以将类似数字的字符串强制转换为数字,现在就可以进行加法了。

简单数组::reduce可将值的数组缩减为单个值。

const grades = ["71", "81", "72", "92", "79", "82", "91", "90"];
const total = grades.reduce((sum, grade) => sum + Number(grade), 0);
console.log('total', total);
console.log('avg', total / grades.length);

巧合的是,您也可以进行一些强制转换,方法是在值前面加上+,将其强制转换为数字,但应注意。

const grades = ["71", "81", "72", "92", "79", "82", "91", "90"];
const total = grades.reduce((sum, grade) => sum + +grade, 0);
console.log('total', total);
console.log('avg', total / grades.length);

使用ParseInt对字符串进行类型转换,您正在尝试添加字符串。使用parseInt或parseFloat将字符串转换为整数或浮点。然后你就可以添加数字字符串了。https://www.tutorialspoint.com/how-to-add-a-number-and-a-string-in-javascript

student.grades.map((grade) => {
  var average = 0;
  average = parseInt(average) + parseInt(grade);
  return average
});

在javascript中减少

let data = ["71", "81", "72", "92", "79", "82", "91", "90"];
let total = data.reduce(( accumulator, currentValue ) => accumulator + parseInt(currentValue),0);
console.log("Total : "+total)
console.log("Average : "+total / data.length)