javascript - 如何使用 JS 从数据表中获取不同的值并对特定字段求和

标签 javascript jquery arrays ajax datatables

如何从数据表中获取不同的值。从下图可以看出

enter image description here

您会看到“类(class) 1”具有相同的值。我想从“类(class)名称”中获取所有不同的值,同时使用 JS 从数据表中的相同不同值添加所有等效的“学生”。

我希望返回是

“类(class) 1,4 名学生”

编辑:

HTML 代码:

<table class="table" id="bookingReport" cellspacing="0" width="100%">
    <thead class="thead-inverse">
        <tr>
            <th><h4>Course Names</h4></th>
            <th><h4>Names</h4></th>
            <th><h4>Dates</h4></th>
        </tr>
    </thead>        
</table>

JS 代码:

"dataSrc": function(result) {
    var obj, id, paymentMethod;
    var validatedResult = [];

    $.each(result.aaData, function(index, value) {
        var givenName, surname, organisationName;

        id = value.id;
        dateCreated = value.dateCreated;



        $.each(value.bookingDetail, function(i, v) {


            $.each(v.student.studentCourseDetail, function(ii, sd) {
                obj = new Object();

                obj["id"] = sd.id;
                obj["surname"] = surname;
                obj["givenName"] = givenName;
                obj["dateCreated"] = dateCreated;
                obj["courseName"] = sd.courseName;


                validatedResult.push(obj);



            });




        });

    });

    return validatedResult;

}, },

"aoColumns": [{
        "data": "courseName"
    }, {
        "data": "givenName"
    }, {
        "data": "dateCreated"
    }

],

最佳答案

要计算分配给每门类(class)的人数,您可以使用数组的 reduce 函数。给出下面的学生数组,您可以轻松计算结果。

var bookingList = [{
    id: 1,
    name: 'Alice',
    courseName: 'Physics'
  },
  {
    id: 2,
    name: 'Bob',
    courseName: 'Physics'
  },
  {
    id: 3,
    name: 'Emily',
    courseName: 'Math'
  },
  {
    id: 1,
    name: 'Alice',
    courseName: 'Math'
  },
  {
    id: 4,
    name: 'Jane',
    courseName: 'Biology'
  },
  {
    id: 5,
    name: 'Dan',
    courseName: 'Chemistry'
  }
]

var result = bookingList.reduce(function(prevValue, currValue, index, array) {
  var bookingEntry = array[index]
  if (prevValue[bookingEntry.courseName] == null) {
    prevValue[bookingEntry.courseName] = 1
  } else {
    prevValue[bookingEntry.courseName]++
  }

  return prevValue
}, {});

console.log(result)

关于javascript - 如何使用 JS 从数据表中获取不同的值并对特定字段求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42641771/

相关文章:

javascript - 下划线 _.each 和 _.map 之间的真正区别是什么?

javascript - Materialise Select onChange 未调用

javascript - 需要获取当前幻灯片编号 - Basic JQuery Slider

javascript - 使用 Angular.js 高级过滤数据

javascript - Coffeescript/Javascript 循环未执行

javascript - 检索 Ajax 发送给 Node JS 的参数

javascript - 左右滑动标签

javascript - asp.net js controlID动态增加

java - 从字符串数组中获取特定项目

java - 避免重复并打印独特的有序集