Javascript 将对象添加到阵列失败
我正在构建一个数组,该数组将承载具有学生姓名、成绩和z分数(当前值设置为null)的对象,但加载对象时遇到问题 对象的外观如下所示:Javascript 将对象添加到阵列失败,javascript,jquery,arrays,object,javascript-objects,Javascript,Jquery,Arrays,Object,Javascript Objects,我正在构建一个数组,该数组将承载具有学生姓名、成绩和z分数(当前值设置为null)的对象,但加载对象时遇到问题 对象的外观如下所示: var 000 = { name: "John Doe", grade: 92, zScore: null }; HTML: JavaScript: var studentArray = []; var oid = 001; var studentName = $('#name').val(); var studentGrade = (
var 000 = {
name: "John Doe",
grade: 92,
zScore: null
};
HTML:
JavaScript:
var studentArray = [];
var oid = 001;
var studentName = $('#name').val();
var studentGrade = (parseInt($('#name').val()));
var zScore = null;
$(document).ready(function() {
$('#add').on('click', function() {
if (studentName === "" || studentGrade === "") {
return;
};
oid = {
name: studentName,
grade: studentGrade,
z: zScore
};
//check it out
console.log(oid);
//push object to array
studentArray.push(oid);
//check out array
console.log(studentArray);
//push OID up for next student and reset inputs
$('#name').val("");
$('#grade').val("");
oid++;
});
$('#doMath').on('click', function() {});
});
我做错了什么?通过添加到数组,实际上忽略了对象名称。也许您可以使用父对象
var studentObj = {};
var oid = 001;
var studentName = "evan";
var studentGrade = "a";
var zScore = null;
//push to object
studentObj[oid] = {
name: studentName,
grade: studentGrade,
z: zScore
};
//check out object
console.log(studentObj);
//push OID up for next student and reset inputs
$('#name').val("");
$('#grade').val("");
oid++;
查看此代码,它可以帮助您在每次单击时分配值:
$('#add').on('click', function() {
studentName = $('#name').val();
studentGrade = (parseInt($('#name').val()));
...
});
var 000?这样行吗?这是一个样本<代码>变量oid实际上从
001开始
嗯,oid从一个数字开始,然后你给它分配一个对象,然后你试图增加这个对象…不会起作用!您正在使用#name和not#grade设置学生成绩的值。此外,您还需要在单击函数中获取这些值,否则它们在代码中总是为空,即studentArray[oid]={name:studentName,grade:studentGrade,z:zScore
但当我打开控制台时,成绩出现在学生前面。这是为什么?最终目标是什么?你打算如何显示数据?是否按字母顺序显示数据?我正计划访问score属性以最终计算z分数pr属性。最终目标是显示z分数。我还没有决定如何显示数据,但可能现在有一个包含名称、等级和z分数的列表。我在底部添加了一个#doMath的快速函数单击,看看我实际上还没有看到hasOwnProperty
方法,所以我查找了它。我的理解正确吗它所做的是按名称访问属性?例如,studentArray[property]。grade
获取成绩,但不能使用studentArray.grade
?
var studentObj = {};
var oid = 001;
var studentName = "evan";
var studentGrade = "a";
var zScore = null;
//push to object
studentObj[oid] = {
name: studentName,
grade: studentGrade,
z: zScore
};
//check out object
console.log(studentObj);
//push OID up for next student and reset inputs
$('#name').val("");
$('#grade').val("");
oid++;
$('#add').on('click', function() {
studentName = $('#name').val();
studentGrade = (parseInt($('#name').val()));
...
});