添加最后一个元素而不是最近添加的输入的JavaScript数组
晚上好。我是JavaScript新手,我的小项目需要帮助,我这里只有一个问题,就是this.Add=函数()。 当我从列表中输入重复值时,它可以正常工作,因此它会显示一个警报,表示不允许重复。但是当我输入一个唯一的值时,它只将myTasks列表中最后一个元素(洗碗)相加。而不是我最近输入的,列表继续添加相同的。我是不是把什么东西放错地方了? 这是我的最后一项活动,我想完成它,进入下一个功能。先谢谢你。添加最后一个元素而不是最近添加的输入的JavaScript数组,javascript,Javascript,晚上好。我是JavaScript新手,我的小项目需要帮助,我这里只有一个问题,就是this.Add=函数()。 当我从列表中输入重复值时,它可以正常工作,因此它会显示一个警报,表示不允许重复。但是当我输入一个唯一的值时,它只将myTasks列表中最后一个元素(洗碗)相加。而不是我最近输入的,列表继续添加相同的。我是不是把什么东西放错地方了? 这是我的最后一项活动,我想完成它,进入下一个功能。先谢谢你。 任务积垢 #任务{ 显示:无; } ✖ 名称 var app=新函数(){
任务积垢
#任务{
显示:无;
}
✖
名称
var app=新函数(){
this.el=document.getElementById('myTasks');
this.myTasks=[“打扫浴室”、“洗碗碟”];
this.Count=函数(数据){
var el=document.getElementById('counter');
变量名称='任务';
如果(数据){
如果(数据>1){
name=‘要做的事情’;
}
el.innerHTML=数据+“”+名称;
}否则{
el.innerHTML='No'+名称;
}
};
this.FetchAll=function(){
var数据=“”;
如果(this.myTasks.length>0){
对于(i=0;i
在for循环中:
for (task of this.myTask) {
}
您没有声明新的任务变量,而是将其分配给外部任务
变量,因此重复添加列表中已有的任务
您可以在for作用域中声明一个新变量,如下所示:
for (const task of this.myTask) {
}
在for循环中:
for (task of this.myTask) {
}
您没有声明新的任务变量,而是将其分配给外部任务
变量,因此重复添加列表中已有的任务
您可以在for作用域中声明一个新变量,如下所示:
for (const task of this.myTask) {
}
你的HTML就是这样
您的Javascript如下所示。检查任务是否已存在于数组中时出现错误。在比较字符串值时,可以使用带三重等于的简单for循环,也可以按照我下面所附的操作
var app = new function() {
this.el = document.getElementById('myTasks');
this.myTasks = ['Clean the bathroom', 'Wash the dishes'];
this.Count = function(data) {
var el = document.getElementById('counter');
var name = 'task';
if (data) {
if (data > 1) {
name = 'Things To DO';
}
el.innerHTML = data + ' ' + name ;
} else {
el.innerHTML = 'No ' + name;
}
};
this.FetchAll = function() {
var data = '';
if (this.myTasks.length > 0) {
for (i = 0; i < this.myTasks.length; i++) {
data += '<tr>';
data += '<td>' + this.myTasks[i] + '</td>';
data += '<td><button onclick="app.Edit(' + i + ')">Edit</button></td>';
data += '<td><button onclick="app.Delete(' + i + ')">Delete</button></td>';
data += '</tr>';
}
}
this.Count(this.myTasks.length);
console.log(this.myTasks.length);
return this.el.innerHTML = data;
};
this.Add = function () {
el = document.getElementById('add-task');
// Get the value
var task = el.value;
console.log(task);
if (task ){
var arrayContainsTask = (this.myTasks.indexOf(task) > -1);
if(arrayContainsTask == true){
window.alert("Duplicates not allowed.");
}else{
// Add the new value
this.myTasks.push(task);
// Reset input value
el.value = '';
}
// Dislay the new list
this.FetchAll();
}
}
}
var-app=新函数(){
this.el=document.getElementById('myTasks');
this.myTasks=[“打扫浴室”、“洗碗碟”];
this.Count=函数(数据){
var el=document.getElementById('counter');
变量名称='任务';
如果(数据){
如果(数据>1){
name=‘要做的事情’;
}
el.innerHTML=数据+“”+名称;
}否则{
el.innerHTML='No'+名称;
}
};
this.FetchAll=function(){
var数据=“”;
如果(this.myTasks.length>0){
对于(i=0;i-1);
if(arrayContainsTask==true){
window.alert(“不允许重复”);
}否则{
//添加新值
this.myTasks.push(任务);
//重置输入值
el.值='';
}
//公布新名单
this.FetchAll();
}
}
}
按原样创建HTML
您的Javascript如下所示。检查任务是否已存在于数组中时出现错误。在比较字符串值时,可以使用带三重等于的简单for循环,也可以按照我下面所附的操作
var app = new function() {
this.el = document.getElementById('myTasks');
this.myTasks = ['Clean the bathroom', 'Wash the dishes'];
this.Count = function(data) {
var el = document.getElementById('counter');
var name = 'task';
if (data) {
if (data > 1) {
name = 'Things To DO';
}
el.innerHTML = data + ' ' + name ;
} else {
el.innerHTML = 'No ' + name;
}
};
this.FetchAll = function() {
var data = '';
if (this.myTasks.length > 0) {
for (i = 0; i < this.myTasks.length; i++) {
data += '<tr>';
data += '<td>' + this.myTasks[i] + '</td>';
data += '<td><button onclick="app.Edit(' + i + ')">Edit</button></td>';
data += '<td><button onclick="app.Delete(' + i + ')">Delete</button></td>';
data += '</tr>';
}
}
this.Count(this.myTasks.length);
console.log(this.myTasks.length);
return this.el.innerHTML = data;
};
this.Add = function () {
el = document.getElementById('add-task');
// Get the value
var task = el.value;
console.log(task);
if (task ){
var arrayContainsTask = (this.myTasks.indexOf(task) > -1);
if(arrayContainsTask == true){
window.alert("Duplicates not allowed.");
}else{
// Add the new value
this.myTasks.push(task);
// Reset input value
el.value = '';
}
// Dislay the new list
this.FetchAll();
}
}
}
var-app=新函数(){
this.el=document.getElementById('myTasks');
this.myTasks=[“打扫浴室”、“洗碗碟”];
this.Count=函数(数据){
var el=do