(1)
var dataSum = "";
Вы инициализируете dataSum
как строку. Для строк +=
является оператором конкатенации, поэтому вы получите 100200300400500
из-за конкатенации. Вы должны инициализировать его 0:
var dataSum = 0;
(2) * * +1011
parseFloat
не изменяет входной параметр. Значение с плавающей точкой возвращается. Поэтому вы должны использовать
dataSum += parseFloat(data[i]);
(3)
var data = [];
data = dataString.split(",");
2-е назначение отменяет 1-е. Просто напишите
var data = dataString.split(",");
(Кстати, ECMAScript 5 поддерживает эту однострочную строку:
return "100,200,300,400,500".split(/,/).map(parseFloat).reduce(function(x,y){return x+y;})
)