对象名称可以是数字吗?
Can an object name be a number?
我正在尝试创建一个对象并让每个对象的名称都是唯一的。这些对象将有一个名称、一个数字和第二个为空的数字(我打算稍后计算)。
是否可以让一个对象以 1
的变量命名,然后在函数末尾增加变量,以便下一个对象是 2
?
有人提醒我 ID 号的值,结果显示为 NaN
在我的 fiddle 中,我有一个按钮可以将数组中的每个对象附加到列表中,以便我可以检查它们。结果是 [ object Object ]
.
如果我以后想使用每个对象中的 number
字段来执行计算,这应该是对象的对象而不是对象数组吗?
我的示例对象所采用的格式是我想坚持使用的格式(除非有理由以其他方式做得更好),因为它遵循 w3schools 上的示例。
我做错了什么?
HTML:
<input type="text" placeholder="Name" id="name"> <input type="text" placeholder="Number" id="number">
<br>
<button id="makeObject">Make Object</button>
<button id="show">Show Me The Objects</button>
<ul id="list"></ul>
JavaScript:
/*Sample ideal object
1 = {
name: John Doe
number: 52
newNumber: null
}
*/
var arrayOfObjects = [];
var id = 1;
$(document).ready(function(){
$('#makeObject').on('click', function(){
var number = (parseInt($('#Number').val()));
var name = $('#Name').val();
arrayOfObjects.push(id = {
number: number,
name: name,
newNumber: null
});
id++;
alert("The id is now: " + id);
$('#Number').val("");
$('#Name').val("");
});
$('#show').on('click', function(){
$('#list').html("");
for (i = 0; i < arrayOfObjects.length; i++) {
$('#list').append("<li>" + arrayOfObjects[i] + "</li>");
};
});
});
您正在寻找的是一个对象键,而不是它的名称(不能以数字开头作为量子态)
总之,你的作业有点奇怪。这种方式应该是您想要的方式:
arrayOfObjects[id] = {
number: number,
name: name,
newNumber: null
};
查看 http://jsfiddle.net/ej3z9ncd/3/ 以确认其正常工作
对象名称是字符串。
我意识到唯一名称对于对象本身并不重要,我只是使用 "student." 相反,我将唯一的学生姓名作为对象中的一个字段。
<input type="text" id="name" placeholder="Name">
<input type="text" id="score" placeholder="Score">
<br>
<br>
<button id="push">Push to Array</button>
<button id="show">Show</button>
<button id="doMath">Do Math</button>
<ul id="list"></ul>
<p id="sum"></p>
<p id="mean"></p>
CSS:
input:hover {
border: 1px solid black;
}
JavaScript:
var myArray = [];
var sumOfScores;
var mean;
$(document).ready(function () {
$('#push').on('click', function () {
var name = $('#name').val();
var score = parseInt($('#score').val());
myArray.push((student = {
name: name,
score: score,
newScore: null
}));
console.log(student);
$('#name').val("");
$('#score').val("");
});
$('#show').on('click', function () {
$('#list').html("");
for (i = 0; i < myArray.length; i++) {
$('#list').append("<li>" + myArray[i].name + " received a score of " + myArray[i].score + "</li>");
};
});
$('#doMath').on('click', function(){
sumOfScores = 0;
for (i = 0; i < myArray.length; i++) {
sumOfScores += myArray[i].score;
};
$('#sum').html("The sum is: " + sumOfScores);
mean = (sumOfScores / myArray.length);
$('#mean').html("The mean score is: " + mean);
});
});
我正在尝试创建一个对象并让每个对象的名称都是唯一的。这些对象将有一个名称、一个数字和第二个为空的数字(我打算稍后计算)。
是否可以让一个对象以 1
的变量命名,然后在函数末尾增加变量,以便下一个对象是 2
?
有人提醒我 ID 号的值,结果显示为 NaN
在我的 fiddle 中,我有一个按钮可以将数组中的每个对象附加到列表中,以便我可以检查它们。结果是 [ object Object ]
.
如果我以后想使用每个对象中的 number
字段来执行计算,这应该是对象的对象而不是对象数组吗?
我的示例对象所采用的格式是我想坚持使用的格式(除非有理由以其他方式做得更好),因为它遵循 w3schools 上的示例。
我做错了什么?
HTML:
<input type="text" placeholder="Name" id="name"> <input type="text" placeholder="Number" id="number">
<br>
<button id="makeObject">Make Object</button>
<button id="show">Show Me The Objects</button>
<ul id="list"></ul>
JavaScript:
/*Sample ideal object
1 = {
name: John Doe
number: 52
newNumber: null
}
*/
var arrayOfObjects = [];
var id = 1;
$(document).ready(function(){
$('#makeObject').on('click', function(){
var number = (parseInt($('#Number').val()));
var name = $('#Name').val();
arrayOfObjects.push(id = {
number: number,
name: name,
newNumber: null
});
id++;
alert("The id is now: " + id);
$('#Number').val("");
$('#Name').val("");
});
$('#show').on('click', function(){
$('#list').html("");
for (i = 0; i < arrayOfObjects.length; i++) {
$('#list').append("<li>" + arrayOfObjects[i] + "</li>");
};
});
});
您正在寻找的是一个对象键,而不是它的名称(不能以数字开头作为量子态)
总之,你的作业有点奇怪。这种方式应该是您想要的方式:
arrayOfObjects[id] = {
number: number,
name: name,
newNumber: null
};
查看 http://jsfiddle.net/ej3z9ncd/3/ 以确认其正常工作
对象名称是字符串。
我意识到唯一名称对于对象本身并不重要,我只是使用 "student." 相反,我将唯一的学生姓名作为对象中的一个字段。
<input type="text" id="name" placeholder="Name">
<input type="text" id="score" placeholder="Score">
<br>
<br>
<button id="push">Push to Array</button>
<button id="show">Show</button>
<button id="doMath">Do Math</button>
<ul id="list"></ul>
<p id="sum"></p>
<p id="mean"></p>
CSS:
input:hover {
border: 1px solid black;
}
JavaScript:
var myArray = [];
var sumOfScores;
var mean;
$(document).ready(function () {
$('#push').on('click', function () {
var name = $('#name').val();
var score = parseInt($('#score').val());
myArray.push((student = {
name: name,
score: score,
newScore: null
}));
console.log(student);
$('#name').val("");
$('#score').val("");
});
$('#show').on('click', function () {
$('#list').html("");
for (i = 0; i < myArray.length; i++) {
$('#list').append("<li>" + myArray[i].name + " received a score of " + myArray[i].score + "</li>");
};
});
$('#doMath').on('click', function(){
sumOfScores = 0;
for (i = 0; i < myArray.length; i++) {
sumOfScores += myArray[i].score;
};
$('#sum').html("The sum is: " + sumOfScores);
mean = (sumOfScores / myArray.length);
$('#mean').html("The mean score is: " + mean);
});
});