2017-08-03 40 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