添加对象到数组失败

Add object to array failure

我正在构建一个数组来托管包含学生姓名、成绩和 z 分数(当前值设置为空)的对象,但在加载对象时遇到问题。

对象看起来像这样:

var 000 = {
    name: "John Doe",
    grade: 92,
    zScore: null
};

Fiddle here.

HTML:

<div id="content">
    <input type="text" id="name" placeholder= "Name . . .">
    <input type="text" id="grade" placeholder = "Grade . . . ">
    <button id="add">Add</button>
    <button id="doMath">Do Math</button>
    <br>
    <br>
    <ul id="list"></ul>
</div>

CSS:

#name:hover,#grade:hover {
    border: 1px solid #000;
}

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++;

https://jsfiddle.net/kogx7Lks/3/

看到这段代码,它可以帮助您在每次点击时分配价值:

$('#add').on('click', function() {
    studentName = $('#name').val();
    studentGrade = (parseInt($('#name').val()));
    ...
 });

http://jsfiddle.net/kogx7Lks/4/