数据处理
Data Processing
本文关键字:数据处理 更新时间:2023-09-26
我一直在寻找一种处理数据的方法。我已经尝试过数组,对象和JSON.stringify(),但我似乎无法成功。
我需要一个代码来处理这类数据
first object:
first data {lesson: "MATH", count: 6}
second data {lesson: "BIOLOGY", count: 4}
second object:
first data {lesson: "MATH", average: 85, period: 1}
second data {lesson: "BIOLOGY", average: 40, period: 1}
third object
first data {lesson: "MATH", average: 95, period: 2}
second data {lesson: "BIOLOGY", average: 45, period: 2}
我需要两个函数来用给定的数据填充对象,并在需要时调用它们,如
function reqDataAverage(lesson, period) {
//some stuff todo
return average;
}
function reqDataCount(lesson) {
//some stuff todo
return count;
}
我用这个代码创建数据(注意:元素是"first data")
var element = new Object();
var x;
console.log("Start of data");
for (x in TArrayI) {
var first = TArrayI[x][0];
var second = TArrayI[x][averageRow];
if (first == "") {
break;
} else {
element.lesson = first;
element.average = second;
element.period = 1;
console.log("Lesson is " + element.lesson + "and average is " + element.average + "/" + element.period);
}
}
完成后,我必须能够做这样的事情:
var lessons = [...]
var result = 0;
var sum;
function math() {
var x;
for (x in lessons) {
var lesson = lessons[x];
var averageOfThis = reqDataAverage(lesson, 1);
var multiplierCount = reqDataCount(lesson);
var result = result + (averageOfThis x multiplierCount);
}
var sum = result / 40;
}
我想我明白你的要求。您需要循环使用findAndAdd()函数来填充平均值数组。
var lessons = [];
function findAndAdd(subject, period, average){
lessons.forEach(function(lesson){
if(lesson.subject === subject && lesson.period === period){
lesson.averages.push(average);
}
});
return -1;
}
function Lesson(subject, period){
this.subject = subject;
this.period = period;
this.averages = [];
}
function count(subject, period){
var cnt = -1;
lessons.forEach(function(lesson){
if(lesson.subject === subject && lesson.period === period){
cnt = lesson.averages.length;
}
});
return cnt;
}
function average(subject, period){
var sum, lesson;
lessons.forEach(function(lsn){
if(lsn.subject === subject && lsn.period === period){
lesson = lsn;
}
});
if(lesson.averages.length > 0){
sum = lesson.averages.reduce(function(prev, curr){
return prev + curr;
});
return sum / lesson.averages.length;
}
return -1;
}
// sample data for testing purposes
var newObj = new Lesson('MATH', 1);
lessons.push(newObj);
newObj = new Lesson('MATH', 2);
lessons.push(newObj);
newObj = new Lesson('BIOLOGY', 1);
lessons.push(newObj);
newObj = new Lesson('BIOLOGY', 2);
lessons.push(newObj);
findAndAdd('MATH', 1, 65);
findAndAdd('MATH', 1, 75);
console.log(count('MATH', 1));
console.log(average('MATH', 2));
相关文章:
- 平均值.on(事件[,选择器][,数据],处理程序)
- 使用JavaScript处理JSON数据
- AJAX调用后使用JavaScript处理数据(CakePHP 2.6.x)
- EmberJS 应用程序中列表 + 详细信息 + 编辑视图的数据处理
- 如何在D3地图中进行时间数据处理
- JavaScript函数数据处理
- 画布已被跨源数据处理所污染
- 如何将全局状态数据处理到Redux中的深度嵌套组件中
- D3js奇怪的日期和数据处理
- 用它的数据处理数组中的每一项
- 将嵌套json数据处理成数据连接
- 二进制数据处理和位与
- 使用Processing.js:我可以有多个画布只有一个数据处理源sketch.pde
- JQuery Post数据处理
- 如何使用Java在网页中立即将网络摄像头数据处理为图像
- Javascript(客户端):数据库查询和数据处理
- vuejs 使用动态模板及其相关数据处理组件的更好方法
- jQuery ajax :在回调之前执行数据处理
- 数据处理
- 在node.js中使用外部函数式语言进行数据处理