好吧,我必须能够总结这个 JSON 的 coursePrice JSONLINK关于 AngularJS (javascript)
我必须赚两笔钱,一笔用于学校,另一笔用于所有学校。我已经打印了表格上的所有数据,但我不确定如何制作该 javascript 函数
最佳答案
我想这会让你开始
// get numeric value and separate it by ','
var num = coursePrice.split('$')[1].split(",");
// concatenate numeric string
num = num[0] + num[1];
// turn it into a float
num = parseFloat(num);
下次不要指望别人来完成你的工作:
var sum = 0;
data.forEach(function(d) {
d.professor.forEach(function(p) {
var num = p.coursePrice.split('$')[1].split(",");
// concatenate numeric string
num = num[0] + num[1];
// turn it into a float
num = parseFloat(num);
allSum += num;
});
});
这适用于所有学校,对于个别学校,您可以使用 jQuery $.grep 函数来完成此操作。
对于没有 $.grep 和 jQuery 的个别学校:
var schools = [];
var schoolsSum = [];
data.forEach(function(d) {
if(schools.indexOf(d.school) == -1) {
schools.push(d.school);
schoolsSum.push(0);
}
var schoolIndex = schools.indexOf(d.school);
d.professor.forEach(function(p) {
var num = p.coursePrice.split('$')[1].split(",");
// concatenate numeric string
num = num[0] + num[1];
// turn it into a float
num = parseFloat(num);
allSum += num;
schoolsSum[schoolIndex] += num;
});
});
在此之后,您应该有两个数组,一个包含学校名称,另一个包含 schols 类(class)价格总和。您可以轻松地使用这两个对象创建一个对象:
var schoolsObj = new Object();
var index = 0;
schools.forEach(function(s) {
schoolsObj[s] = schoolsSum[index];
index += 1;
});
关于javascript - double 组中的求和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25809861/