javascript - double 组中的求和函数

标签 javascript html angularjs

好吧,我必须能够总结这个 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/

相关文章:

angularjs - ASP.NET Core API - 登录和防伪 token

android - 状态栏隐藏 Cordova

html - 从数据库编译动态 HTML 字符串

javascript - Dojo 1.9 NumberTextBox 不工作?

Javascript - 选择名称更改问题

javascript - 如何使用 Angular 6从纬度和经度获取地址

javascript - 关于正确构建 javascript、css 和 svg 的问题

jquery - 输入开始效果(HTML、CSS、JQUERY)

javascript - 当表格单元格中的内容溢出时,水平滚动条不显示

javascript - 如何使一页网站在 div 更改时更改背景颜色?