我正在创建一个小程序,其中有一个带有两个输入字段的页面,用户可以输入他们的姓名和他们今天吃的卡路里数。一个人输入他们的数据后,我想将其与其他人的数据一起显示在按总卡路里排序的列表中。
我还希望那个人能够重新输入他们的姓名和额外的卡路里,并让它更新他们的总卡路里(而不是用他们的名字和最近的卡路里量创建另一个条目)。
我将输入值分配给变量,使用它们创建一个新的 Person 对象,然后将该对象推送到一个数组。
如何测试数组是否包含名称已存在的 Person 对象?我的测试无法识别已提交的名称。如果已经输入了一个人的名字,我想更新他们的总卡路里而不是创建一个新的 Person 对象。
我的 JavaScript 代码:
(function () {
"use strict";
/* Person object constructor */
function Person(name, calories) {
this.name = name;
this.calories = calories;
}
function addToList() {
var name = document.getElementById('name').value;
var calories = document.getElementById('calories').value;
/*
Check to see if list already contains person's name
If yes, update their calorie amount.
If not, create a new player and add them to the list.
*/
for (var i = 0; i < list.length; i++) {
if (list[i] === name) {
alert('This person already exists.');
} else {
var newPerson = new Person(name, calories);
list.push(newPerson);
}
}
}
var list = [];
$('#add').click(addToList);
})();