2017-08-03 39 views
0

我试图添加和删除“events”中的元素。 我不知道该怎么做。任何人都可以帮助我,请。我也尝试过splice()。JavaScript错误:推送不是函数

var events = 
    [ 
    { name: "Meeting 1", date: "Aug 2 2017", hour: "18:15" }, 
    { name: "Meeting 2", date: "Aug 1 2017", hour: "09:21" }, 
    { name: "Team", date: "Aug 1 2017", hour: "18:30" }, 

    { name: "St Mary Day", date: "Aug 15 2017", hour: "00:00" }, 
    { name: "St Andrew Day", date: "Nov 30 2017", hour: "00:00" }, 
    { name: "ROU National Day", date: "Dec 01 2017", hour: "00:00" }, 
    { name: "1st Day of Christmas", date: "Dec 25 2017", hour: "00:00" }, 
    { name: "2nd Day of Christmas", date: "Dec 26 2017", hour: "00:00" }, 
    { name: "Company Holiday", date: "Dec 27 2017", hour: "00:00" }, 
    { name: "Company Holiday", date: "Dec 28 2017", hour: "00:00" }, 
    { name: "Company Holiday", date: "Dec 29 2017", hour: "00:00" } 
    ]; 



function myFunction() { 
    console.log("myfunction"); 
    var input = document.getElementById('mod').value; 
    console.log("input is" + input); 

    events.forEach(function (events) { 
    console.log("enum events"); 
    console.log(events.name); 

    if (events.name == input) { 
     var length = events.length; 
     console.log("aici"); 
     events.push({ "name": "Tony Montana", "date": "Aug 3 2017", "hour": "18:00" }); 
    } 
    }); 
} 
+0

为您正在寻找的行为提供更好的解释。破碎的代码不能很好地替代正确的解释。花一些时间阅读[问] – charlietfl

回答

0

var events = 
 
    [ 
 
    { name: "Meeting 1", date: "Aug 2 2017", hour: "18:15" }, 
 
    { name: "Meeting 2", date: "Aug 1 2017", hour: "09:21" }, 
 
    { name: "Team", date: "Aug 1 2017", hour: "18:30" }, 
 
    { name: "St Mary Day", date: "Aug 15 2017", hour: "00:00" }, 
 
    { name: "St Andrew Day", date: "Nov 30 2017", hour: "00:00" }, 
 
    { name: "ROU National Day", date: "Dec 01 2017", hour: "00:00" }, 
 
    { name: "1st Day of Christmas", date: "Dec 25 2017", hour: "00:00" }, 
 
    { name: "2nd Day of Christmas", date: "Dec 26 2017", hour: "00:00" }, 
 
    { name: "Company Holiday", date: "Dec 27 2017", hour: "00:00" }, 
 
    { name: "Company Holiday", date: "Dec 28 2017", hour: "00:00" }, 
 
    { name: "Company Holiday", date: "Dec 29 2017", hour: "00:00" } 
 
    ]; 
 

 

 

 
events.forEach(function (event) { 
 
    if (event.name == "Meeting 2") { 
 
    
 
     // Removes the "Meeting 2" element 
 
     events = events.filter(evt => evt.name != "Meeting 2") 
 
     
 
     // Pushes the "Tony Montana" element 
 
     events.push({ "name": "Tony Montana", "date": "Aug 3 2017", "hour": "18:00" }); 
 
    } 
 
}); 
 
console.log("events array is now", events)

关于要删除的元素,你的代码显示在移除元素没有尝试,所以我不知道的东西删除的条件。但是您可以随时过滤您的阵列,例如:

events = events.filter(event => event.name!=="Meeting 2") 

将删除元素name : "Meeting 2"

+0

push()的错误消失,但它不起作用。谢谢! – Ella

+0

定义 “它不工作” –

+0

admin.html:159未捕获的类型错误:events.filter不在admin.html函数 :159 在Array.forEach() 在myFunction的(admin.html:153)我得到这个错误。 “不起作用”我的意思是它不会删除元素。 – Ella