Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS无法从数组填充数组_Javascript_Jquery_Arrays_Foreach - Fatal编程技术网

Javascript JS无法从数组填充数组

Javascript JS无法从数组填充数组,javascript,jquery,arrays,foreach,Javascript,Jquery,Arrays,Foreach,我有一系列的考试结果,包括考试的日期和成绩。我想把所有成绩放在一个数组中,日期放在另一个数组中,这样我就可以在chart.js应用程序中绘制它们。我怎样才能把它们分开 结果阵列示例布局: Results{ [0] {examDate: "2017-10-16T10:30:00", <ResultEntry>grade: A} [1] {examDate: "2017-15-16T11:00:00", <ResultEntry>grade: C} [2] {examD

我有一系列的考试结果,包括考试的日期和成绩。我想把所有成绩放在一个数组中,日期放在另一个数组中,这样我就可以在chart.js应用程序中绘制它们。我怎样才能把它们分开

结果阵列示例布局:

Results{

[0] {examDate: "2017-10-16T10:30:00", <ResultEntry>grade: A}

[1] {examDate: "2017-15-16T11:00:00", <ResultEntry>grade: C}

[2] {examDate: "2017-16-16T11:30:00", <ResultEntry>grade: B}

[3]{examDate: "2017-20-16T12:00:00", <ResultEntry>grade: B}

}

我在我的项目上安装了Jquery。每个功能都可以用来实现这一点吗?

您可以通过传递回调函数来使用
映射
方法

map()

let results=[{examDate:“2017-10-16T10:30:00”,等级:'A'},{examDate:“2017-15-16T11:00:00”,等级:'C'},{examDate:“2017-16-16T11:30:00”,等级:'B'},{examDate 2017-20-16T12:00:00”,等级:'B'};
设dates=results.map(函数(a){
返回a.examDate;
});
设等级=结果.map(函数(a){
返回a级;
});
控制台日志(日期);

控制台日志(等级)
您可以通过传递回调函数来使用
map
方法

map()

let results=[{examDate:“2017-10-16T10:30:00”,等级:'A'},{examDate:“2017-15-16T11:00:00”,等级:'C'},{examDate:“2017-16-16T11:30:00”,等级:'B'},{examDate 2017-20-16T12:00:00”,等级:'B'};
设dates=results.map(函数(a){
返回a.examDate;
});
设等级=结果.map(函数(a){
返回a级;
});
控制台日志(日期);

控制台日志(等级)您需要从数组元素获取字段值。选中此项:

var dateArray = [];
var gradeArray = [];
var counter = 0;

for (var member in results) {
    dateArray.push(member.examDate);
    gradeArray.push(member.grade);
}

您需要从数组元素中获取字段的值。选中此项:

var dateArray = [];
var gradeArray = [];
var counter = 0;

for (var member in results) {
    dateArray.push(member.examDate);
    gradeArray.push(member.grade);
}

如果
results
是一个数组,则在此行中

for (members in results) {
成员
基本上是索引值0,1

因此
成员[0]
未定义

我在我的项目上安装了Jquery。每个功能都可以 用于实现这一点

是的,但是为什么不改用原生的
forEach

var dateArray = [], gradeArray = [];
results.forEach( function( result ){
  dateArray.push( result.examDate );
  gradeArray.push( result.grade );
});

如果
results
是一个数组,则在此行中

for (members in results) {
成员
基本上是索引值0,1

因此
成员[0]
未定义

我在我的项目上安装了Jquery。每个功能都可以 用于实现这一点

是的,但是为什么不改用原生的
forEach

var dateArray = [], gradeArray = [];
results.forEach( function( result ){
  dateArray.push( result.examDate );
  gradeArray.push( result.grade );
});

考虑到结果数组具有以下形状:

let results = [
    { examDate: "2017-10-16T10:30:00", grade: 'A' },
    { examDate: "2017-15-16T11:00:00", grade: 'C' },
    { examDate: "2017-16-16T11:30:00", grade: 'B' },
    { examDate: "2017-20-16T12:00:00", grade: 'B' }
];
此功能非常适合:

let dateArray = results.map(result => result.examDate);
let gradeArray = results.map(result => result.grade);
您还可以通过几种不同的方式在元素上循环:

let dateArray = [],
    gradeArray = [];

for (let result of results) {
    dateArray.push(result.examDate);
    gradeArray.push(result.grade);
}
还有一个类似于您的解决方案:

var dateArray = [],
    gradeArray = [];

for (var i = 0; i < results.length; i++) {
    dateArray[i] = results[i].examDate;
    gradeArray[i] = results[i].grade;
}

考虑到结果数组具有以下形状:

let results = [
    { examDate: "2017-10-16T10:30:00", grade: 'A' },
    { examDate: "2017-15-16T11:00:00", grade: 'C' },
    { examDate: "2017-16-16T11:30:00", grade: 'B' },
    { examDate: "2017-20-16T12:00:00", grade: 'B' }
];
此功能非常适合:

let dateArray = results.map(result => result.examDate);
let gradeArray = results.map(result => result.grade);
您还可以通过几种不同的方式在元素上循环:

let dateArray = [],
    gradeArray = [];

for (let result of results) {
    dateArray.push(result.examDate);
    gradeArray.push(result.grade);
}
还有一个类似于您的解决方案:

var dateArray = [],
    gradeArray = [];

for (var i = 0; i < results.length; i++) {
    dateArray[i] = results[i].examDate;
    gradeArray[i] = results[i].grade;
}

尝试
dateArray[counter]=members.examDate
dateArray[counter]=members.grade
尝试
dateArray[counter]=members.examDate
dateArray[counter]=members.grade